无法使用PowerMockRunner运行JUnit测试

我有一个基于Gradle的Java项目,现在我想使用PowerMock模拟一个私有方法。问题是我无法使用PowerMockRunner,因为添加@RunWith(org.powermock.modules.junit4.PowerMockRunner.class)注释时总是会收到以下异常。

错误:

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)

...

这是我的测试依赖项:

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'

您能否在堆栈跟踪中添加更多行,以发现有关该问题的更多详细信息。

以上是 无法使用PowerMockRunner运行JUnit测试 的全部内容, 来源链接: utcz.com/qa/426486.html

回到顶部