2012-02-13 3 views
1

J'ai rencontré cette erreur lors de l'exécution de tests unitaires. J'utilise intellij et EasyMock 3.0 et cglib (2.2) et Objenesis (1.2).VerifyError: class net.sf.cglib.core.DebuggingClassWriter annule la méthode finale visit

Voici mon test:

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); 
} 

Est-ce que quelqu'un sait pourquoi cela se produit?

Je suis curieux à ce sujet puisque j'utilise déjà la bonne version au moins je le pense. Je vous serais reconnaissant pour toute l'aide apportée.

Répondre

0

Vérifiez les dépendances des bibliothèques de votre projet. Par exemple, si votre projet utilise asm.jar, assurez-vous qu'il est dans la bonne version pour cglib. Autant que je sache asm 3.3 fonctionne avec cglib 2.2 bien mais la version plus tardive se heurtera.

0

Je viens d'obtenir un problème similaire.try pour obtenir l'arbre de dépendance. Si vous pouvez trouver qu'il y a un peu de lib dépend de asm 4.0. Et comme asm 4.0 ne peut pas fonctionner correctement avec cglib 2.2. C'est peut-être la raison.

Avec mon propre cas, j'utilise maven pour le projet de sorte que mvn dependency:tree pour obtenir l'arbre de dépendance. Et j'ai trouvé quelque chose comme ceci:

[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

je change asm à 3,1 et il works.And EasyMock besoin d'utiliser quelque chose comme asm, elle dépend. Que cette aide.

Questions connexes