使用Mockito和PowerMock时,NoClassDefFoundError - org / mockito / exceptions / Reporter

问题描述 投票:0回答:1

我正在尝试将Powermock添加到使用Mockito的应用程序中。这就是我目前在gradle构建中所拥有的:

 compile("junit:junit:4.12"){force = true}
  compile("org.powermock:powermock-api-mockito-common:1.7.0")     
  compile("org.powermock:powermock-api-mockito2:1.7.0")
  compile("org.powermock:powermock-api-support:1.7.0")
  compile("org.powermock:powermock-core:1.7.0")
  compile("org.powermock:powermock-module-junit4:1.7.0")
  compile("org.powermock:powermock-module-junit4-common:1.7.0")
  compile("org.powermock:powermock-reflect:1.7.0")
  compile("org.javassist:javassist:3.12.0.GA")
  compile("org.mockito:mockito-core:2.8.9")

这是我到目前为止的测试文件......

@RunWith(PowerMockRunner.class)
@PrepareForTest(XMLTransaction.class)
public class CloseSummaryOrCloseTrailerResponseTest {

     public final static String URL="WL_APPSERVER";
     private XMLTransaction xmlTransaction; 

    @Before
    public void initMocks() throws Exception {
        xmlTransaction = PowerMockito.spy(new XMLTransaction(URL));
        PowerMockito.doNothing().when(xmlTransaction, "initialize");    
    }

    @Test
    public void whenCloseSummaryResponseNoErrorExpectCorrectXmlMsgProduced ()
    {
        ...test code here
    }
}

我收到错误:

java.lang.NoClassDefFoundError:org / mockito / exceptions / Reporter at sun.reflect.GeneratedSerializationConstructorAccessor8.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.objenesis.instantiator.sun .sunReflectionFactoryInstantiator.newInstance(SunReflectionFactoryInstantiator.java:48)org.powermock.ref.internance.WhiteboxImpl.newInstance(WhiteboxImpl.java:251)org.powermock.reflect.Whitebox.newInstance(Whitebox.java:139)

Reporter类应该包含在mockito-core中。我需要什么额外的罐子?我使用这个网站回顾了Mockito和Powermock的兼容性:https://github.com/powermock/powermock/wiki/Mockito#supported-versions

但似乎我错过了其他一些罐子。

更新检查了答案,但它没有解决我的问题。我变了

compile("org.powermock:powermock-api-mockito2:1.7.0")

compile("org.powermock:powermock-api-mockito2:1.7.0RC2")

现在我得到一个不同的错误:

java.lang.IllegalStateException:扩展API内部错误:org.powermock.api.extension.proxyframework.ProxyFrameworkImpl无法位于类路径中。在org.powermock.reflect.proxyframework.ProxyFrameworkHelper.register(ProxyFrameworkHelper.java:35)

这需要什么罐子?

java mockito powermock
1个回答
0
投票

什么对我有用...是我删除了我的lib文件夹中的所有powermock jar,然后使用上面的gradle代码并重建。我能够进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.