JuanMorenoDeveloper / testcontainers-intro

https://bit.ly/testcontainers-intro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introducción a Testcontainers

Testing

Una de las tareas clave en el desarrollo de software es el testing.

Niveles de test

Según la pirámide de niveles de prueba de Mike Cohn; Hay 3 niveles principales:

  1. Prueba unitaria
  2. Prueba de Integración
  3. Prueba de interfaz de usuario

Pirámide de test

Figura 1. Pirámide de prueba. https://martinfowler.com/bliki/TestPyramid.html

Test de integración

Pruebas unitarias como base, y test de integración para verificar interacción con componentes externos fuera de la lógica de negocios.

Test containers

Testcontainers es una biblioteca Java que podemos usar para ejecutar diferentes frameworks de pruebas (como JUnit o Spock) con contenedores docker.

No solo Java

Hay implementaciones en Go, dotNet, Python, Node y Rust.

Módulos

  • Base de datos (SQL, NoSQL)
  • Nube (AWS vía localstack, Azure, GCloud)
  • Kafka, MockServer, Solr, Vault...
  • GenericContainers

Requisitos para una aplicación Java

@notaciones

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

Demo

Conclusiones

Conclusiones

  • Brinda el beneficio de una compatibilidad de base de datos del 100% (ya que ejecuta una base de datos real dentro de un contenedor).
  • La base de datos siempre se inicia en un estado conocido, sin contaminación entre ejecuciones de prueba.

Más información

Juan Moreno

About

https://bit.ly/testcontainers-intro


Languages

Language:HTML 100.0%