
Una de las tareas clave en el desarrollo de software es el testing.
Según la pirámide de niveles de prueba de Mike Cohn; Hay 3 niveles principales:
Pruebas unitarias como base, y test de integración para verificar interacción con componentes externos fuera de la lógica de negocios.
Testcontainers es una biblioteca Java que podemos usar para ejecutar diferentes frameworks de pruebas (como JUnit o Spock) con contenedores docker.
Hay implementaciones en Go, dotNet, Python, Node y Rust.
@Testcontainers:
esta anotación maneja automáticamente el ciclo de vida del
contenedor.
@Container:
marca los contenedores para ser administrados por la extensión de
Testcontainers.
El uso de contendores es bastante sencillo.
La opción withTmpFs
que nos permite mapear el volumen del contenedor a nuestra memoria
host.
Si queremos acelerar nuestras pruebas de integración, podemos declarar contenedores como campos estáticos para compartir entre pruebas. En nuestro caso, nuestra prueba se ejecutó en un promedio de 150 ms.