Was sind im Unit-Test die Unterschiede zwischen @Runwith(SpringRunner.class)
& @SpringBootTest
?
Können Sie mir die Anwendungsfälle jedes einzelnen erklären?
java
spring-boot
junit
spring-boot-test
Zouari
quelle
quelle
Antworten:
@RunWith (SpringRunner.class): Sie müssen diese Anmerkung nur Federverschluß ermöglichen wie Funktionen
@Autowire
,@MockBean
etc .. während junit Prüfung@SpringBootTest: Diese Anmerkung wird verwendet, um den vollständigen Anwendungskontext für End-to-End-Integrationstests zu laden
Hier ist der Artikel mit klaren Beispielen zu beiden Szenarien Baeldung
quelle
Von spring.io :
Wenn Sie also nicht alles benötigen, was Spring Boot für Ihren Integrationstest lädt, benötigen Sie möglicherweise nicht alles
@SpringBootTest
quelle
@RunWith ist eine alte Anmerkung von JUnit 4 zur Verwendung von Testläufern. Wenn Sie JUnit 5 (Jupiter) verwenden, sollten Sie @ExtendWith verwenden, um JUnit-Erweiterungen zu verwenden
Siehe https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing
"Wenn Sie JUnit 4 verwenden, vergessen Sie nicht, Ihrem Test auch @RunWith (SpringRunner.class) hinzuzufügen. Andernfalls werden die Anmerkungen ignoriert. Wenn Sie JUnit 5 verwenden, müssen Sie nicht das entsprechende @ExtendWith ( SpringExtension.class) als @SpringBootTest und die anderen @… Testanmerkungen sind bereits mit Anmerkungen versehen.
quelle