在这种情况下编写单元测试的更好方法是什么
public abstract class Parent {
public void initialize() {
//some logic
}
}
public class Child extends Parent {
public void initialize(){
super.initialize()
//some logic
}
}
@Test
public void testInitialize() {
Child child = new Child();
// Prevent/stub logic in super.method()
Mockito.doNothing().when(child)./*super method called*/
verify(...)
}
从父抽象类中模仿超级方法的问题,我需要阻止它的执行。
我找到了非抽象父类的方法,但是在我的情况下不起作用:
Child spy = Mockito.spy(new Child());
// Prevent/stub logic in super.method()
Mockito.doNothing().when((Parent)spy).initialize();
答案 0 :(得分:1)
Child extends Parent
是Child
的实现细节,因此您的测试无需理会。通常这是您需要重组基类的信号,例如通过引入依赖注入。