SpringRunner vs SpringBootTest


11

En la prueba unitaria, ¿cuáles son las diferencias entre @Runwith(SpringRunner.class)& @SpringBootTest?

¿Me puede explicar los casos de uso de cada uno?


1
¿Has leído alguna de las diversas documentaciones? ¿Qué es lo que aún no está claro?
jonrsharpe

La diferencia obvia es la prueba de primavera versus la prueba de arranque de primavera, pero es una pregunta muy amplia
usuario7294900

Entendería cuándo debería usar @SpringBootTest además de SpringRunner.
zouari

Respuestas:


10

@RunWith (SpringRunner.class): necesita esta anotación para habilitar funciones de arranque de primavera como @Autowire, @MockBeanetc. durante las pruebas de junit

se usa para proporcionar un puente entre las características de prueba de Spring Boot y JUnit. Siempre que usemos cualquier característica de prueba de Spring Boot en nuestras pruebas JUnit, se requerirá esta anotación.

@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

La anotación @SpringBootTest se puede usar cuando necesitamos arrancar todo el contenedor. La anotación funciona creando el ApplicationContext que se utilizará en nuestras pruebas.

Aquí está el artículo con ejemplos claros en ambos escenarios Baeldung


1

Desde spring.io :

@RunWith(SpringRunner.class)le dice a JUnit que se ejecute usando el soporte de prueba de Spring. SpringRunneres el nuevo nombre para SpringJUnit4ClassRunner, es un poco más fácil a la vista.

@SpringBootTestdice "bootstrap con el soporte de Spring Boot" (por ejemplo, cargar application.propertiesy darme toda la bondad de Spring Boot)

Entonces, si no necesita todo lo que Spring Boot carga para su prueba de integración, es posible que no necesite @SpringBootTest


0

@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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.