Jakie są różnice w teście jednostkowym między @Runwith(SpringRunner.class)
& @SpringBootTest
?
Czy możesz mi wyjaśnić przypadki użycia każdego z nich?
java
spring-boot
junit
spring-boot-test
zouari
źródło
źródło
Odpowiedzi:
@RunWith (SpringRunner.class): Trzeba to po prostu włączyć adnotację do bagażnika takich jak sprężyna
@Autowire
,@MockBean
itp .. podczas testów junit@SpringBootTest: ta adnotacja służy do ładowania pełnego kontekstu aplikacji na potrzeby testów integracji od końca do końca
Oto artykuł z jasnymi przykładami na temat obu scenariuszy Baeldung
źródło
Od spring.io :
Jeśli więc nie potrzebujesz wszystkiego, co ładuje Spring Boot do testu integracji, możesz nie być potrzebny
@SpringBootTest
źródło
@RunWith to stara adnotacja z JUnit 4 do używania testerów. Jeśli używasz JUnit 5 (Jupiter), powinieneś użyć @ExtendWith, aby użyć rozszerzeń JUnit
Zobacz https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing
„Jeśli używasz JUnit 4, nie zapomnij również dodać @RunWith (SpringRunner.class) do testu, w przeciwnym razie adnotacje zostaną zignorowane. Jeśli używasz JUnit 5, nie musisz dodawać równoważnego @ExtendWith ( SpringExtension.class) jako @SpringBootTest i inne @… Adnotacje testowe są już z nim opatrzone adnotacjami.
źródło