Testes de integração que não mentem
Estratégias com TestContainers para manter CI/CD rápida sem sacrificar a confiança no código.
Autor: Danilo FernandoPublicado em 18 de janeiro de 2025
Suites verdes, código frágil
Um suite verde sem confiança é pior do que nenhum suite — ela te dá licença pra dar deploy enquanto o sistema queima.
O padrão que funciona
- TestContainers para dependências reais (Postgres, Kafka, Redis).
- Fixtures determinísticos — nada de
@Sql+ random. - Um seed por teste, sem estado compartilhado.
- Assertions em dados, não em número de chamadas de mock.
@Testcontainers
@SpringBootTest
class OrderConfirmationIT {
@Container
static PostgreSQLContainer<?> db = new PostgreSQLContainer<>("postgres:16")
.withInitScript("db/init.sql");
@DynamicPropertySource
static void props(DynamicPropertyRegistry reg) {
reg.add("spring.datasource.url", db::getJdbcUrl);
}
}
O que isso compra
- Testes que viram verdes junto do código, não depois.
- Refactors sem medo.
- Conversas objetivas em code review.
#testes #spring-boot #testcontainers