J'ai des problèmes en essayant d'exécuter un test unitaire avec PowerMock avec Mockito. J'ai besoin de PowerMockito pour se moquer d'une méthode statique.
Voici les versions que j'utilise:
PowerMock 1.6.2
Mockito 1.10.19
JUnit 4.12
Java 8
Lorsque j'ajoute l'annotation @PrepareForTest (Graph.class), l'erreur suivante apparaît:
Java.lang.IllegalStateException: Failed to transform class with name name.of.my.package.GraphUtil. Reason: javassist.bytecode.InterfaceMethodrefInfo cannot be cast to javassist.bytecode.MethodrefInfo
J'ai lu sur la page officielle de Google PowerMock que cela est lié à javassist. Mais je suis un peu perdu et je ne sais pas comment le réparer.
Juste au cas où, j'ai également essayé de télécharger le dernier SNAPSHOT de Powermock (1.6.3-SNAPSHOT) mais je n'ai pas fonctionné non plus.
Quelqu'un pourrait-il m'aider, s'il vous plaît?
Merci d'avance
Oui, c'était le problème. PowerMock a une dépendance à javassist, il me fallait donc exclure cette dépendance transitive dans mon pom et inclure plus tard la dépendance à la version corrigée de javassist. Et cela a fonctionné pour moi. Merci!
Après Francisco González réponse, voici ce que je devais faire:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.5.5</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.22.0-GA</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<exclusions>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>