Im JUnit-Test habe ich versucht, PowerMock zu installieren, weil ich es verwenden wollte, aber ein Fehler ist aufgetreten, sodass ich die Lösung zusammenfassen werde.
//Foo Test
public class FooTest {
@Test
public void testFoo() {
//Mock erstellen
Bar bar = mock(Bar.class);
//Verschiedene Tests
}
}
Ich habe vor der Installation von PowerMock einen solchen Testcode geschrieben, der einwandfrei funktioniert hat.
Beim Hinzufügen von PowerMock zu pom.xml wurde beim Ausführen des Tests der folgende Fehler angezeigt.
java.lang.IllegalAccessError: class org.mockito.internal.creation.jmock.ClassImposterizer$1 cannot access its superclass org.mockito.internal.creation.cglib.MockitoNamingPolicy
In pom.xml ist der Teil, der verwandt zu sein scheint, so.
<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>
<!--Andere externe Bibliotheken-->
</dependencies>
Als ich Google ausprobierte, war diese Frage und Antwort hilfreich.
stackoverflow - Junit Mockito error on initialization
Demnach verwendet "Spring-Boot-Starter-Test 1.4.2.RELEASE" standardmäßig "Mockito 1.10.19" und am 1.10.19 "org.mockito.internal.creation.jmock.ClassImposterizer" Es scheint, dass `nicht enthalten ist.
In meiner Umgebung habe ich "Spring-Boot-Starter-Test 1.5.14.RELEASE" verwendet, und als ich die Maven-Abhängigkeit überprüft habe, habe ich festgestellt, dass sie auch "Mockito 1.10.19" verwendet. Ich tat.
Es scheint, dass 1.9.5 "org.mockito.internal.creation.jmock.ClassImposterizer" enthält.
Ändern Sie pom.xml wie folgt.
<dependencies>
<!-- Spring Boot Starter Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!--Mockito ausschließen-->
<exclusions>
<exclusion>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--Mockito hinzugefügt-->
<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>
<!--Andere externe Bibliotheken-->
</dependencies>
Jetzt ist der Fehler weg.
Es war hilfreich, leicht verständliche Fragen und Antworten zu haben.