java - Junit Test 通用接口(interface) java

标签 java generics junit

我想知道是否有必要为通用接口(interface)编写 JUNIT 测试,在本例中我有通用接口(interface):

public interface Operable <T> {

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

还有两个实现该接口(interface)的类:

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

谢谢

最佳答案

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

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

关于java - Junit Test 通用接口(interface) java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40606053/

相关文章:

java - 当我按下按钮时,如何使不同类的方法启动?

java - 划分直到达到一定数量并存储循环划分的次数

java - 为什么 JFrame setSize() 方法没有正确设置大小?

java - 列表<? extends Something > 生成而不是 List<Something>

java - 当方法返回 null 时如何在 J-Unit 中进行测试?

java - 如何编写 JUnit 测试用例而不从测试类传递参数

java - 从 java 对象创建复杂的 JSON

java - 在不传递 Class<T> 参数的情况下找出 T.class

c# - C# 泛型约束中的通配符

java - 为什么我的测试没有运行