1

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

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

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

4

2 回答 2

0

感觉有可能,请查看示例:

@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。

于 2013-10-18T09:35:59.013 回答
0

我会将其他方法移至单独的方法

public void start() {
   super.start();
   start0();
}

void start0() {
  //other methods which you really want to test
}

这将使课程更好地可测试

于 2013-10-18T08:56:15.613 回答