2012-02-13 14 views
1

単体テストの実行時にこのエラーが発生しました。VerifyError:クラスnet.sf.cglib.core.DebuggingClassWriterが最終メソッド訪問をオーバーライドします。

私は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

プロジェクトのライブラリの依存関係を確認してください。たとえば、プロジェクトでasm.jarを使用している場合は、正しいバージョンのcglibであることを確認してください。私が知っている限り、3.3はcglib 2.2でうまく動作しますが、それ以降のバージョンは衝突します。

0

私はちょうど同様のproblem.tryを得る依存ツリーを取得します。 いくつかの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

を私は3.1にASMを変更すると、それはEasyMockは、ASMのようないくつかのことを使用する必要がworks.And、それに依存します。 これは役立つかもしれません。

関連する問題