如何在junit测试中从抽象类中跳过对超级方法的调用?

时间:2019-04-06 20:40:05

标签: java junit mockito

在这种情况下编写单元测试的更好方法是什么

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();

1 个答案:

答案 0 :(得分:1)

Child extends ParentChild的实现细节,因此您的测试无需理会。通常这是您需要重组基类的信号,例如通过引入依赖注入。