2016-11-15 46 views
1

我想知道这是否是necesary写一个JUnit测试一个通用的接口,在这种情况下,我有通用接口:实现该接口JUnit测试通用接口的Java

public interface Operable <T> { 

public T suma(T ele1); 
public T resta(T ele1); 
public T division(T ele1); 
public T multiplicacion(T ele1); 
} 

而且两类:

public class Complex implements Operable<Complex> { 

private final double real, imag; 

public Complex(double real, double imag){ 
    this.real = real; 
    this.imag = imag; 
} 
.... 

public class Rational implements Operable<Rational>{ 
private int numerator; 
private int denominator; 

public Rational(int num, int den){ 
    if (den==0){ 
     throw new IllegalArgumentException(); 
    } 
    if (den<0){ 
     num*=-1; 
     den*=-1; 
    } 
    numerator = num; 
    denominator = den; 
} 
... 

我为类的JUnit测试,但我不重盟友知道,如果有必要做这个接口的测试(什么都不做)

谢谢

+0

你想测试一下界面?它可以编译,也可以不编译。 –

+0

它的工作原理,我想知道是否有方法来测试这种接口或者只是需要测试它。 – Alejandro

+0

'接口'不提供任何功能,它们只是任何实现类的*合约*。因此,测试这些实际类是最有意义的,因为它们提供了您希望它们具有的行为。你会为接口测试什么样的行为?他们没有。 – QBrute

回答

1

号的接口定义了一个主叫方和被叫方之间的合同。单元测试应验证此接口的实现符合本合同。

请注意,如果您使用的是Java 8,并且在接口中具有“默认方法”,则意味着该接口中已添加了一部分实现。在这种情况下,这些方法必须经过单元测试。

1

该测试只能适合类,但是当您为某个类编写测试时,可以使用该接口作为参考。 所以简短的答案是否定的。