我没有上课:
Parent.java
interface Parent{
void method1();
default void method2(){
//some default impl
}
}
ChildOne.java
class ChildOne implements Parent{
@Override
void method1(){
//ChildOne specific implementation
}
}
ChildTwo.java
class ChildTwo implements Parent{
@Override
void method1(){
//ChildTwo specific implementation
}
}
问题是:我应该在哪里进行方法2测试?我知道对于单元测试,我应该测试具体的实现,所以ChildOne和ChildTwo,但是当我有相同的方法2实现时,我不想复制我的测试。但是将它放入其中一个类似乎也不好。
Ofc,对于具有默认实现而不是接口的抽象类,问题是相同的。
答案 0 :(得分:4)
你可以创建一个ParentTest
类,并在那里编写测试,在测试中创建一个自定义子类实例(测试专用),允许测试默认方法。