无法使用PowerMockRunner运行JUnit测试

编程入门 行业动态 更新时间:2024-10-24 08:32:16
本文介绍了无法使用PowerMockRunner运行JUnit测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有一个基于Gradle的Java项目,现在我想使用PowerMock来模拟一个私有的方法。问题是我不能使用PowerMockRunner,因为我添加 @RunWith(org.powermock.modules.junit4.PowerMockRunner.class)注释。

错误:

org.powermock.reflect。 exceptions.FieldNotFoundException:在org.junit.internal.runners.MethodValidator类中找不到字段'fTestClass'。 在org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:581)在org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:308)在org .powermock.modules.junit4.internal.impl.testcaseworkaround.PowerMockJUnit4MethodValidator.validate TestMethods(PowerMockJUnit4MethodValidator.java:79)在org.powermock.modules.junit4.internal.impl.testcaseworkaround.PowerMockJUnit4MethodValidator.validate InstanceMethods(PowerMockJUnit4MethodValidator。 java:49)在org.junit.internal.runners.MethodValidator.validateMethodsForDefaultRunner(MethodValidator.java:51)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.validate(PowerMockJUnit44RunnerDelegateImpl。 java:108) ...

这是我的测试依赖项:

testCompile'junit:junit:4. +','org.powermock:powermock-core:1.5.6','org.powermock:powermock-module-junit4:1.5。 6','org.powermock:powermock-api-mockito:1.5.6'

测试本身也完全失效(初始化错误)失败:

@RunWith(PowerMockRunner.class) public class SomeTest { @Test public void testSomething(){} }

任何想法可能是错的?使用PowerMock的其他测试工作正常(没有人使用PowerMockRunner)。

请问和谢谢任何帮助! 本

解决方案

这是一个错误,当您使用JUnit 4.12和PowerMock& 1.6.1。在PowerMock 1.6.1中解决了这个问题。请相应地更新您的依赖关系

testCompile'junit:junit:4.12','org.powermock:powermock-core :1.6.1','org.powermock:powermock-module-junit4:1.6.1','org.powermock:powermock-api-mockito:1.6.1'

如果您无法升级PowerMock,则可以使用JUnit 4.11。

testCompile'junit:junit:4.11','org.powermock:powermock-core:1.5.6','org.powermock:powermock-module- junit4:1.5.6','org.powermock:powermock-api-mockito:1.5.6'

你可以添加更多的stacktrace行,这样可以发现更多有关问题的细节。

I have a Gradle based Java project were I now want to mock a private method using PowerMock. The problem is that I am not able to use the PowerMockRunner as I always get the following exception when I add the @RunWith(org.powermock.modules.junit4.PowerMockRunner.class) annotation.

Error:

org.powermock.reflect.exceptions.FieldNotFoundException: Field 'fTestClass' was not found in class org.junit.internal.runners.MethodValidator. at org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:581) at org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:308) at org.powermock.modules.junit4.internal.impl.testcaseworkaround.PowerMockJUnit4MethodValidator.validate TestMethods(PowerMockJUnit4MethodValidator.java:79) at org.powermock.modules.junit4.internal.impl.testcaseworkaround.PowerMockJUnit4MethodValidator.validate InstanceMethods(PowerMockJUnit4MethodValidator.java:49) at org.junit.internal.runners.MethodValidator.validateMethodsForDefaultRunner(MethodValidator.java:51) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.validate(PowerMockJUnit44RunnerDelegateImpl.java:108) ...

This are my test dependencies:

testCompile 'junit:junit:4.+', 'org.powermock:powermock-core:1.5.6', 'org.powermock:powermock-module-junit4:1.5.6', 'org.powermock:powermock-api-mockito:1.5.6'

The test itself fails also when completely empty (initialization error):

@RunWith(PowerMockRunner.class) public class SomeTest { @Test public void testSomething() { } }

Any ideas what might be wrong? Other tests using PowerMock are working fine (none of them uses the PowerMockRunner).

Greetings and thanks for any help! Ben

解决方案

This is a bug that occurs when you use JUnit 4.12 and PowerMock < 1.6.1. The problem is solved in PowerMock 1.6.1. Please update your dependencies accordingly

testCompile 'junit:junit:4.12', 'org.powermock:powermock-core:1.6.1', 'org.powermock:powermock-module-junit4:1.6.1', 'org.powermock:powermock-api-mockito:1.6.1'

If you cannot upgrade PowerMock then you can use JUnit 4.11.

testCompile 'junit:junit:4.11', 'org.powermock:powermock-core:1.5.6', 'org.powermock:powermock-module-junit4:1.5.6', 'org.powermock:powermock-api-mockito:1.5.6'

Could you please add further lines of the stacktrace, which uncover more details about the problem.

更多推荐

无法使用PowerMockRunner运行JUnit测试

本文发布于:2023-10-31 04:10:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1544958.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:测试   PowerMockRunner   JUnit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!