Spring 5.0.x und Spring Boot 2.0.x wurden veröffentlicht, aber dieses Mal werde ich schreiben, wovon ich süchtig war, als ich den mit der alten Spring-Version implementierten Code überarbeitet habe.
Da @SpringApplicationConfiguration seit Spring 1.4 veraltet ist, möchte ich es durch @SpringBootTest ersetzen, das als alternative Anmerkung bereitgestellt wird. Die Umgebung ist Spring Boot (1.4.8), PowerMock (1.6.5)
Wenn Sie sich den [offiziellen Blog] ansehen (https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4), können Sie anscheinend nur die Anmerkung, aber den Test neu schreiben Wenn ich versuche, es auszuführen, schlägt es mit einer ClassNotFoundException fehl.
TestSample.java
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@PrepareForTest(Hoge.class)
public class TestSample
{
@Before
public void setUp() throws Exception {
PowerMockito.mockStatic(Hoge.class);
}
...
}
java.lang.ClassNotFoundException: com.example.PowermockClassLoadTest$Config$$EnhancerBySpringCGLIB$$e0ecd163
Wenn Sie PowerMock v1.6.5 oder früher zusammen verwenden, scheint es, dass eine ClassNotFoundException aufgrund eines Fehlers in PowerMock auftritt. Referenzausgabe 1, Referenzausgabe 2
Da der Fehler in 1.6.6 behoben wurde, schreiben wir nicht nur die Spring-Annotation neu, sondern geben auch die PowerMock-Version auf 1.6.6 oder höher an.
pom.xml
<dependencies>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>
</dependencies>
Recommended Posts