【问题标题】:Issues with @Rule and PowerMockRule@Rule 和 PowerMockRule 的问题
【发布时间】:2020-12-31 05:16:23
【问题描述】:

我正在使用

@Rule
public PowerMockRule rule = new PowerMockRule();

在我的一个测试文件中。现在,当我删除这部分代码时,几个测试用例开始失败,它们位于不同的文件夹中并且与该文件没有直接关系。 可能是什么问题?

【问题讨论】:

    标签: java unit-testing junit mockito powermock


    【解决方案1】:

    有关详细信息,请参阅下面的 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
         ... 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多