🌱 Digital Garden

Search

Search IconIcon to open search

TestContainers

Last updated Aug 6, 2023 Edit Source

Es una libreria que nos permite tener un contenedor en el cual podemos alojar una base de datos que se ejecuta unicamente durante Tests para poder ejecutar tests sobre una base de datos real.

Esta provee soporte para JUnit, Selenium y cualquier otra cosa que pueda ser ejecutada en un contenedor de Docker.

Facilita el testeo de:

# Prerequisitos

Para poder utilizar test-containers se necesitan las siguientes cosas:

# Instalacion

Como cualquier otra libreria, se necesita agregar al gestor de dependencias de nuestra eleccion.

1
2
3
4
5
<dependency>
	<groupId>org.testcontainers</groupId>
	<artifactId>testcontainers</artifactId>
	<scope>test</scope>
</dependency>

Ademas, se necesita una dependencia basado en el proveedor de test que vas a utilizar (JUnit 4, JUnit 5, Spock, etc)

La que se utiliza en JUnit 5 (Jupiter) es:

1
2
3
4
5
<dependency>
	<groupId>org.testcontainers</groupId>
	<artifactId>junit-jupiter</artifactId>
	<scope>test</scope>
</dependency>

# Comprobacion

Para comprobar que testcontainers esta instalado correctamente, podemos ejecutar un test en el cual se compruebe este trabajo en el contenedor.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@TestContainers
public TestcontainersTest {

	@Container
	public static final PostgreSQLContainer<?> postgreSQLContainer = new PostgreSQLContainer<>("postgres:latest")
		.withDatabaseName("jaimayal-dao-unit-test")
		.withUsername("jaimayal")
		.withPassword("password");

	public void testContainers() {
		assertThat(postgreSQLContainer.isRunning()).isTrue();
		assertThat(postgreSQLContainer.isCreated()).isTrue();
	}