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)

  1. Introdução aos Testes de Integração (2 aulas)
  2. Gerenciamento de Estado de Banco de Dados em Testes (4 aulas)
  3. Configurando Nossos Testes de Integração (6 aulas)
  4. Escrevendo Testes de Integração para Aplicações Web Spring (8 aulas)
  5. Introdução aos Testes End-to-End (3 aulas)
  6. Configurando Nossos Testes End-to-End (5 aulas)
  7. Escrevendo Testes End-to-End para Aplicações Web Spring (7 aulas)
  8. Escrevendo Testes End-to-End para Aplicações Web JavaScript / SPA (4 aulas)
  9. Aulas Bônus: WireMock e Recursos Avançados do JUnit 6 (7 aulas)