Pacote Intermediário (Intermediate Package)
O Pacote Intermediário ensina as técnicas essenciais para escrever tanto testes de integração confiáveis quanto testes de ponta a ponta (End-to-End / E2E) para aplicações web corporativas desenvolvidas com Spring Boot 4 e Kotlin. Este pacote é composto por nove tópicos estruturados:
O tópico Introdução aos Testes de Integração descreve como manter sua base de código limpa e organizada separando categoricamente os testes unitários dos testes de integração. Ao concluir este tópico, você saberá configurar diretórios de código e recursos independentes através do plugin jvm-test-suite do Gradle 9 (Kotlin DSL), executando suas suítes de maneira isolada em ambientes locais e pipelines de CI/CD.
O tópico Gerenciamento de Estado de Banco de Dados em Testes ensina como preparar e controlar o estado do banco de dados em testes reais sem dores de cabeça. Você aprenderá como popular dados determinísticos, isolar transações, gerenciar sequências e escrever asserções robustas sobre o estado final persistido. Além disso, você dominará o uso de classes de constantes e builders para reaproveitar dados de teste com máxima clareza.
O tópico Configurando Nossos Testes de Integração ensina a estruturar o contexto de aplicação (ApplicationContext) em testes de integração no Spring Boot 4. Você aprenderá a configurar instâncias reais do PostgreSQL através do Testcontainers 2.0 e da anotação @ServiceConnection, além de fixar fontes de dados externas e temporais (como relógios com Clock) para garantir testes totalmente determinísticos e imunes a fatores externos incontroláveis.
O tópico Escrevendo Testes de Integração para Aplicações Web Spring capacita você a validar o ecossistema completo da aplicação web: repositórios Spring Data JPA (@DataJpaTest), serviços e controladores integrados com camadas de segurança do Spring Security (autenticação, controle de acesso por perfis/roles e proteção CSRF), assegurando que apenas usuários autorizados acessem os endpoints críticos.
O tópico Introdução aos Testes End-to-End ensina a isolar a suíte de testes de ponta a ponta das demais camadas de teste no build do Gradle 9. Você terá uma introdução sólida à automação moderna de navegadores utilizando o Microsoft Playwright, compreendendo sua arquitetura baseada em eventos e por que ele elimina de vez as falhas intermitentes (flaky tests) que assolavam o antigo ecossistema Selenium.
O tópico Configurando Nossos Testes End-to-End aborda como inicializar e configurar os testes E2E sem duplicação de código. Você aprenderá a subir a aplicação Spring Boot em portas aleatórias (webEnvironment = RANDOM_PORT), inicializar o esquema do banco com migrações Liquibase e aplicar scripts via @Sql para deixar a base pronta para a interação pelo navegador.
O tópico Escrevendo Testes End-to-End para Aplicações Web Spring foca na automação de aplicações web renderizadas pelo servidor (Server-Side Rendering). Você aprenderá a localizar elementos HTML, interagir com formulários e dominar o padrão Page Object em Kotlin, centralizando a lógica de interface e criando testes limpos, autoexplicativos e fáceis de manter.
O tópico Escrevendo Testes End-to-End para Aplicações Web JavaScript / SPA apresenta técnicas fundamentais para lidar com Single Page Applications (React, Vue, Angular) e chamadas AJAX assíncronas. Você aprenderá a utilizar os mecanismos de espera automática (auto-waiting) do Playwright e validações de mutações no DOM, eliminando sleeps artificiais e minimizando falsos positivos.
O tópico Aulas Bônus: WireMock e Recursos Avançados do JUnit 6 ensina como simular integrações com microsserviços e APIs REST externas com o WireMock, garantindo que sua aplicação reaja corretamente a cenários de sucesso, lentidão de rede e erros 5xx de terceiros sem depender de ambientes instáveis.
Tópicos Deste Pacote (Capítulo 02)
- Introdução aos Testes de Integração (2 aulas)
- Gerenciamento de Estado de Banco de Dados em Testes (4 aulas)
- Configurando Nossos Testes de Integração (6 aulas)
- Escrevendo Testes de Integração para Aplicações Web Spring (8 aulas)
- Introdução aos Testes End-to-End (3 aulas)
- Configurando Nossos Testes End-to-End (5 aulas)
- Escrevendo Testes End-to-End para Aplicações Web Spring (7 aulas)
- Escrevendo Testes End-to-End para Aplicações Web JavaScript / SPA (4 aulas)
- Aulas Bônus: WireMock e Recursos Avançados do JUnit 6 (7 aulas)