运行单元测试时遇到了这个错误。
我使用intellij和EasyMock 3.0以及cglib(2.2)和Objenesis(1.2)。
这是我的测试:
public void testGetContentOk() throws Exception {
EasyMock.expect(mockConnectionFactory.getData()).andReturn(mockInputStream);
EasyMock.expect(mockInputStream.read()).andReturn(new Integer( (byte)'I'));
EasyMock.expect(mockInputStream.read()).andReturn(-1);
mockInputStream.close();
EasyMock.replay(mockConnectionFactory);
EasyMock.replay(mockInputStream);
WebClient webClient = new WebClient();
String result = webClient.getContent(mockConnectionFactory);
Assert.assertEquals("I", result);
}
有谁知道为什么会这样?
我很好奇,因为我已经使用了正确的版本,至少我是这么认为的。我将不胜感激任何帮助。
答案 0 :(得分:0)
检查项目的库依赖项。例如,如果您的项目使用asm.jar,请确保它的cglib版本正确。据我所知,asm 3.3适用于cglib 2.2很好但后来的版本会发生冲突。
答案 1 :(得分:0)
我只是得到一些类似的问题。来获取依赖树。 如果你能找到一些lib取决于asm 4.0。因为asm 4.0无法与cglib 2.2一起使用。这可能是原因。
根据我自己的情况,我将maven用于项目,以便mvn dependency:tree
获取依赖树。我找到了类似的东西:
[INFO] | | | - com.esotericsoftware.kryo:kryo:jar:2.21:compile
[INFO] | | | + - com.esotericsoftware.reflectasm:reflectasm:jar:shaded:1.07:compile
[INFO] | | | | - org.ow2.asm:asm:jar:4.0:compile
我将asm更改为3.1并且它可以工作。而EasyMock需要使用像asm这样的东西,它将取决于它。 可以帮忙。