【发布时间】:2020-12-31 05:16:23
【问题描述】:
我正在使用
@Rule
public PowerMockRule rule = new PowerMockRule();
在我的一个测试文件中。现在,当我删除这部分代码时,几个测试用例开始失败,它们位于不同的文件夹中并且与该文件没有直接关系。 可能是什么问题?
【问题讨论】:
标签: java unit-testing junit mockito powermock
我正在使用
@Rule
public PowerMockRule rule = new PowerMockRule();
在我的一个测试文件中。现在,当我删除这部分代码时,几个测试用例开始失败,它们位于不同的文件夹中并且与该文件没有直接关系。 可能是什么问题?
【问题讨论】:
标签: java unit-testing junit mockito powermock
有关详细信息,请参阅下面的 wiki 链接。
从技术上讲,您可以使用PowerMockRule,而不是使用@RunWith(PowerMockRunner.class),如下例所示。
因此,当您删除 PowerMockRule 时,您的测试将会失败,因为您的测试中将没有 @RunWith(PowerMockRunner.class)。
https://github.com/powermock/powermock/wiki/powermockrule
使用 JUnit 规则引导
自 PowerMock 1.4 起可用的功能 自 1.4 版起 可以使用 JUnit 规则引导 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
...
}
【讨论】: