1
默認的方法實現我有休耕類:凡測試超
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,但是當我有相同的method2實現時,我不想重複我的測試。然而,把它放到這些類中的一箇中似乎也不是很好。
Ofc,問題與抽象類的默認實現相同,而不是接口。
那麼,通過在測試中創建一個自定義子類實例,創建一個ParentTest類,並在那裏編寫測試,該測試允許測試默認方法。 –
@JBNizet說什麼。創建一個'Parent'的測試,該測試使用'private'實現來測試,這樣你就可以保證你正在測試'Parent#method2'的行爲,而不是其他任何東西。 –
所以很明顯...爲什麼我沒有考慮這個......夥計們,從你的評論中創建一個答案。我會在接下來的8分鐘內接受它 – ilovkatie