0%
Testes de integração com Spring Boot

Testes de integração Spring

Fatias de contexto, camada de acesso a dados, controladores HTTP e cache.

10-15 min

Testes de integração com Spring Boot

Uma suíte de testes Spring passa de quarenta segundos para onze minutos sem que uma única linha de lógica de negócio tenha sido adicionada. A causa é quase sempre a mesma: o contexto da aplicação é reconstruído dezenas de vezes. O Spring mantém o contexto em cache e o reutiliza entre as classes de teste, mas somente se a configuração solicitada for estritamente idêntica. Uma classe que adiciona um @MockBean, uma propriedade @TestPropertySource ou um perfil diferente obtém uma chave de cache diferente, ou seja, um contexto novo, ou seja, de três a oito segundos adicionais de inicialização. Vinte variantes de configuração significam vinte inicializações.

A segunda armadilha é simétrica: anotar todas as classes de teste com @SpringBootTest por comodidade. Você passa a carregar o contêiner completo — segurança, agendador, clientes HTTP, listeners de mensagens — para testar uma consulta SQL de quinze linhas. O teste fica lento e falha por motivos que nada têm a ver com o que ele verifica: um bean de infraestrutura ausente no ambiente de teste basta para derrubar uma classe que nem sequer o utiliza. A competência a adquirir aqui é carregar o mínimo possível sem perder o realismo, e limitar o número de configurações distintas no projeto.

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!