Sobes.tech
Junior — Middle

Tem experiência no uso de contêineres de teste nos seus projetos?

sobes.tech IA

Resposta da IA

Os contentores de teste (Testcontainers) são uma biblioteca para testes de integração que permite executar contentores Docker reais com os serviços necessários (por exemplo, bases de dados, brokers de mensagens) durante a execução dos testes.

A experiência de uso inclui:

  • Início e paragem automáticos de contentores no ambiente de teste.
  • Isolamento dos testes usando serviços reais, o que aumenta a fiabilidade dos testes.
  • Capacidade de configurar os contentores de acordo com as necessidades do teste.

Exemplo de uso com base de dados PostgreSQL:

public class MyRepositoryTest {

    @Rule
    public PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:13")
            .withDatabaseName("testdb")
            .withUsername("user")
            .withPassword("pass");

    @Test
    public void testDatabaseConnection() {
        String jdbcUrl = postgres.getJdbcUrl();
        // Usar jdbcUrl para conectar e testar o repositório
    }
}

Assim, os contentores de teste permitem criar testes de integração mais realistas e fiáveis sem necessidade de configurar manualmente o ambiente.