我们应该对接口中的默认方法(Java 8)进行单元测试吗? [关闭]

2024-01-03

我对 Java 8 中引入的接口中的默认方法实现感到有点困惑。我想知道我们是否应该专门为接口及其实现的方法编写 JUnit 测试。我尝试用谷歌搜索,但找不到一些指导方针。请指教。


这取决于方法的复杂性。如果代码很简单,则实际上没有必要,例如:

public interface MyInterface {
    ObjectProperty<String> ageProperty();
    default String getAge() {
        return ageProperty().getValue();
    }
}

如果代码比较复杂,那么你应该编写单元测试。例如,这个默认方法来自Comparator:

public interface Comparator<T> {
    ...
    default Comparator<T> thenComparing(Comparator<? super T> other) {
        Objects.requireNonNull(other);
        return (Comparator<T> & Serializable) (c1, c2) -> {
            int res = compare(c1, c2);
            return (res != 0) ? res : other.compare(c1, c2);
        };
    }
    ...
}

如何测试呢?

从接口测试默认方法与测试抽象类相同。

这已经得到了回答。 https://stackoverflow.com/questions/243274/best-practice-with-unit-testing-abstract-classes

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们应该对接口中的默认方法(Java 8)进行单元测试吗? [关闭] 的相关文章

随机推荐