在使用PowerMockito测试方法时跳过超级调用



是否可以跳过超级方法("super.start()")进行测试,例如:

public void start() {
   super.start();
   //other methods which I really want to test
}

编辑:忘了提 - 我不想更改原始代码。

我会将其他方法移动到单独的方法

public void start() {
   super.start();
   start0();
}
void start0() {
  //other methods which you really want to test
}

这将使类更好地测试。

感觉这是可能的,请查看示例:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Example.B.class)
public class Example {
  @Test
  public void testSuppressMethod() throws Exception {
    suppress(method(A.class, "doA"));
    new B().doA();
  }
  static class A {
    void doA() {
        System.out.println("a");
    }
  }
  static class B extends A {
    @Override
    void doA() {
        super.doA();
        System.out.println("b");
    }
  }
}

您所需要的只是在抑制语句中指定父类。使用了PowerMock 1.5.1。

相关内容

  • 没有找到相关文章

最新更新