Junit Test通用接口java

时间:2016-11-15 09:17:51

标签: java generics junit

我想知道是否需要为通用接口编写JUNIT测试,在这种情况下我有通用接口:

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测试,但我真的不知道是否有必要对接口进行测试(它什么都不做)

谢谢

2 个答案:

答案 0 :(得分:1)

没有。接口定义调用者和被调用者之间的契约。单元测试应验证此接口的实现是否符合此合同。

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

答案 1 :(得分:1)

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