是否可以跳过超级方法("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。