我有一個基於Gradle的Java項目,現在我想模擬使用PowerMock的私有方法。問題是我無法使用PowerMockRunner,因爲我在添加@RunWith(org.powermock.modules.junit4.PowerMockRunner.class)
註釋時總是遇到以下異常。無法使用PowerMockRunner運行JUnit測試
錯誤:
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)。
問候和感謝任何幫助! Ben
非常感謝! Gradle是否也會推出beta版本,這是否是正常行爲? – Ben 2014-10-07 20:39:41
似乎並沒有在4.12中修復... – Mag 2015-03-06 12:40:23
幸運的是PowerMock 1.6.1修復了這個問題。 – JeeBee 2015-03-06 17:00:02