Dans le test JUnit, j'ai essayé d'installer PowerMock parce que je voulais l'utiliser, mais une erreur s'est produite, je vais donc résumer la solution.
//Test Foo
public class FooTest {
@Test
public void testFoo() {
//Créer une maquette
Bar bar = mock(Bar.class);
//Divers tests
}
}
J'ai écrit un code de test comme celui-ci avant d'installer PowerMock, et cela a bien fonctionné.
Lorsque j'ai ajouté PowerMock à pom.xml, j'ai eu l'erreur suivante lors de l'exécution du test.
java.lang.IllegalAccessError: class org.mockito.internal.creation.jmock.ClassImposterizer$1 cannot access its superclass org.mockito.internal.creation.cglib.MockitoNamingPolicy
Dans pom.xml, la partie qui semble être liée est comme ça.
<dependencies>
<!-- Spring Boot Starter Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Powermock -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<!--Autres bibliothèques externes-->
</dependencies>
Lorsque j'ai essayé Google, ces questions et réponses ont été utiles.
stackoverflow - Junit Mockito error on initialization
Selon cela, spring-boot-starter-test 1.4.2.RELEASE
utilise Mockito 1.10.19
par défaut, et ʻorg.mockito.internal.creation.jmock.ClassImposterizer sur 1.10.19. Il semble que «n'est pas inclus.
Dans mon environnement, j'ai utilisé spring-boot-starter-test 1.5.14.RELEASE
, et quand j'ai vérifié la dépendance Maven, j'ai trouvé qu'il utilise également Mockito 1.10.19
. J'ai fait.
Il semble que la version 1.9.5 contienne ʻorg.mockito.internal.creation.jmock.ClassImposterizer`.
Modifiez pom.xml comme suit.
<dependencies>
<!-- Spring Boot Starter Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!--Exclure Mockito-->
<exclusions>
<exclusion>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--Ajout de Mockito-->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<!-- Powermock -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<!--Autres bibliothèques externes-->
</dependencies>
Maintenant, l'erreur a disparu.
Il était utile d'avoir des questions et réponses faciles à comprendre.
Recommended Posts