Está en la página 1de 2

6/1/23, 18:32 Anotaciones útiles en entornos de testing Java | ramoncarrasco.

es

A N O TA C I O N E S Ú T I L E S E N
E N T O R N O S D E T E S T I N G J AVA

Categoría
Java   JUnit   Spring

Descripción

JUNIT 4
JUnit 4 es el framework para el desarrollo de tests unitarios por excelencia en Java. Utiliza las siguientes
anotaciones:

@Test : identifica un método como método test. Admite los parámetros:


expected = <clase_excepcion.class>ón.class>  devuelve resultado fallido en caso de que no
se lance la excepción indicada
En JUnit 5 se sustituye por  Assertions.assertThrows(<clase_excepcion.class>) .
timeout = <milisegundos>  devuelve resultado fallido en caso de que la ejecución dure más
de  milisegundos .
En JUnit 5 se sustituye por  Assertions.assertTimeout(<milisegundos>) .
@Before : se ejecuta antes de cada test. Normalmente se utiliza para preparar el entorno de testing
(por ejemplo: inicialización de clases, lectura de datos de entrada....).
@After : se ejecuta después de cada test. Normalmente se utiliza para limpiar el entorno de testing.
@BeforeClass : se ejecuta una vez, antes de comenzar todos los tests. Esto métodos deben definirse
como static para trabajar con JUnit.
@AfterClass : se ejecuta una vez, cuando los tests han finalizado. Estos métodos deben definirse
como static para trabajar con JUnit.
@Ignore : el método de test debe ser desactivado (no se ejecuta).

SPRING BOOT
Spring Boot dispone de sus propias anotaciones específicas

@RunWith(SpringRunner.class) : ejecuta el test dentro de un Spring Context


Cuando se utiliza JUnit 5, se sustituye por  @ExtendWith(SpringExtension.class) .
@SpringBootTest : busca el Spring Boot Application para configurarse
@TestConfiguration : especifica una configuración de Spring para el test
@MockBean : inyecta un mock de Mockito
@SpyBean : inyecta un spy de Mockito
@JsonTest : crea un objeto mapper de Jackson o Gson vía Spring Boot
@WebMvcTest : se utiliza para testear un contexto web sin levantar un servidor Http completo
@DataJpaTest : sirve para probar la capa de datos con la base de datos embebida
@JdbcTest : es similar a  @DataJpaTest , pero no configura el entity manager
@DataMongoTest : configura una base de datos MongoDB embebida para los tests
@RestClientTest : crea un servidor mock para probar clientes rest

https://www.ramoncarrasco.es/es/content/es/kb/160/anotaciones-utiles-en-entornos-de-testing-java 1/2
6/1/23, 18:32 Anotaciones útiles en entornos de testing Java | ramoncarrasco.es

@AutoConfigureRestDocs : permite el uso de Spring Rest Docs en los tests, creando documentación
del API
@BootStrapWith : configura la forma en que el contexto de pruebas se arranca
@ContextConfiguration : indica a Spring cómo configurar el contexto para el test
@ContextHierarchy : permite crear una jerarquía del contexto con  @ContextConfiguration
@ActiveProfiles : indica qué perfiles de Spring deberían estar activos para el test
@TestPropertySource : configura los orígenes para el test
@DirtiesContext : resetea el contexto de Spring después del test (es una operación costosa en
tiempo)
@WebAppConfiguration : indica que Spring debería usar el contexto Web Application
@TestExecutionListeners : permite especificar los oyentes para los eventos del test
@Transactional : ejecuta el test en transacción, y hace un rollback cuando se completa por defecto
@BeforeTransaction : acción a ejecutar previa a iniciar la transacción
@AfterTransaction : acción a ejecutar tras la transacción
@Commit : especifica que se debe ejecutar commit sobre la transacción cuando el test ha finalizado.
@Rollback : especifica que se debe ejecutar un rollback sobre la transacción cuando el test ha
finalizado. Esta es la acción por defecto
@Sql : especifica los scripts SQL a ejecutar antes de los tests
@SqlConfig : define los metadatos para los scripts Sql
@SqlGroup : grupo de anotaciones  @Sql
@Repeat : repite el test X veces
@Timed : es similar al timeout de JUnit, pero espera a que se complete el test
@IfProfileValue : indica que el test sólo se ejecuta para un entorno de test específico
@ProfileValueSourceConfiguration : especifica una fuente para el valor del perfil

JUNIT 5
@BeforeEach : se ejecuta antes de cada test. Normalmente se utiliza para preparar el entorno de
testing (por ejemplo: inicialización de clases, lectura de datos de entrada....).
@AfterEach : se ejecuta después de cada test. Normalmente se utiliza para limpiar el entorno de
testing.
@BeforeAll : se ejecuta una vez, antes de comenzar todos los tests. Esto métodos deben definirse
como static para trabajar con JUnit.
@AfterAll : se ejecuta una vez, cuando los tests han finalizado. Estos métodos deben definirse como
static para trabajar con JUnit.
@Disabled : el método de test debe ser desactivado (no se ejecuta).

https://www.ramoncarrasco.es/es/content/es/kb/160/anotaciones-utiles-en-entornos-de-testing-java 2/2

También podría gustarte