En la prueba unitaria, ¿cuáles son las diferencias entre @Runwith(SpringRunner.class)& @SpringBootTest?
¿Me puede explicar los casos de uso de cada uno?
                    
                        java
                                spring-boot
                                junit
                                spring-boot-test
                                
                    
                    
                        zouari
fuente
                
                fuente

Respuestas:
@RunWith (SpringRunner.class): necesita esta anotación para habilitar funciones de arranque de primavera como
@Autowire,@MockBeanetc. durante las pruebas de junit@SpringBootTest: esta anotación se utiliza para cargar el contexto completo de la aplicación para las pruebas de integración de extremo a extremo
Aquí está el artículo con ejemplos claros en ambos escenarios Baeldung
fuente
Desde spring.io :
Entonces, si no necesita todo lo que Spring Boot carga para su prueba de integración, es posible que no necesite
@SpringBootTestfuente
@RunWith es una antigua anotación de JUnit 4 para usar corredores de prueba. Si está usando JUnit 5 (Júpiter), debe usar @ExtendWith para usar extensiones JUnit
Ver https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing
"Si está usando JUnit 4, no olvide agregar también @RunWith (SpringRunner.class) a su prueba, de lo contrario las anotaciones serán ignoradas. Si está usando JUnit 5, no es necesario agregar el @ExtendWith equivalente ( SpringExtension.class) como @SpringBootTest y las otras @ ... Las anotaciones de prueba ya están anotadas con él.
fuente