我一直在研究一些具有复杂静态方法的测试,所以我在测试中使用powermock来模拟它们。
我的配置
一切正常,直到应用程序将junit从4.11升级到4.12。现在我在使用powermock时会显示此错误:
在类org.junit.internal.runners.MethodValidator中找不到字段'fTestClass'。
所以我做了一些研究,这个问题在以后的powermock版本中得到了解决,事实上,当我进入1.6.6(也不是1.6.2 +)时,它并没有给我带来这个错误。但是其他东西正在破裂:
java.lang.NoClassDefFoundError:org / mockito / internal / creation / util / MockitoMethodProxy
之前我已经遇到过这个问题,我试过很多版本才能使它工作直到我之前提到的配置(Junit 4.11,Mockito 1.95,PowerMock 1.5.6)。 我发现版权兼容性的在线链接在这里
https://github.com/powermock/powermock/wiki/MockitoUsage
但它只谈到了与powermock的mockito。我尝试组合版本(遵循mockito和powermock的规则)。我无法更改junit版本,因此我将mokito更改为2.0.0和powermock 1.6.6(因为文档说它有效),但错误仍然存在。我尝试了2.5.4和1.6.6,以及其他版本的powermock。到目前为止,我没有运气。
有谁知道如何配置?是否有关于这些兼容性的文档我不知道了?
答案 0 :(得分:1)
我建议将PowerMock与PowerMock存储库中的Mockito和Junit4版本一起使用,以从此处获得最大的兼容性:
Junit4: https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4
Mockito: https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito2
尝试使用以下相同版本:
等级示例:
testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.5'
testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '2.0.5'
对我有用!