问题描述
我正在使用
@Rule
public PowerMockRule rule = new PowerMockRule();
在我的一个测试文件中。现在,当我删除这部分代码时,几个测试用例开始失败,它们位于不同的文件夹中并且与此文件没有直接关系。 可能是什么问题?
解决方法
有关详细信息,请参阅以下 wiki 链接。
从技术上讲,您可以使用 @RunWith(PowerMockRunner.class)
代替 PowerMockRule
,如下例所示。
因此,当您删除 PowerMockRule
时,您的测试将会失败,因为您的测试中将没有 @RunWith(PowerMockRunner.class)
。
https://github.com/powermock/powermock/wiki/powermockrule
使用 JUnit 规则进行引导
自 PowerMock 1.4 以来可用的功能 自 1.4 版
可以使用 JUnit Rule 而不是引导 PowerMock
使用 PowerMockRunner 和 RunWith
注解。这允许您在仍然使用其他 JUnit 运行程序的同时
受益于 PowerMock 的功能。您可以通过指定:
用PowerMockRule
@PrepareForTest(X.class);
public class MyTest {
@Rule
PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
没有PowerMockRule
@RunWith(PowerMockRunner.class)
@PrepareForTest(X.class);
public class MyTest {
// Tests goes here
...
}