Junit 参数化测试与 Powermock 一起 - 如何?

2022-08-31 21:01:57

我一直在尝试弄清楚如何在Junit4中与PowerMock一起运行参数化测试。问题在于,要使用PowerMock,您需要用

@RunWith(PowerMockRunner.class)

并使用您必须装饰的参数化测试

@RunWith(Parameterized.class)

从我所看到的,他们似乎相互排斥!?这是真的吗?有什么办法可以解决这个问题吗?我试图在使用PowerMock运行的类中创建一个参数化类;像这样:

@RunWith(PowerMockRunner.class)
class MyTestClass {
     @RunWith(Parameterized.class)
     class ParamTestClass {
          // Yadayada
     }
}

但不幸的是,这并没有多大好处...静止不运行与PowerMock支持(也许并不奇怪)...而且我已经没有想法了,所以任何帮助都非常感谢!ParamTestClass

更新:对于未来的谷歌用户,另请参阅:在没有RunWith的情况下使用PowerMock?


答案 1

我有同样的问题。不幸的是,由于我拥有的JVM,它不允许我使用PowerMock规则。我没有使用RunnerDelegate规则。

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Parameterized.class)

答案 2

是的,如果您使用 JUnit 4.7+,则可以使用可用的 PowerMock 规则


推荐