Testes Java: JUnit 5, Mockito e Cobertura
- Nível: Intermediário
- Módulos: 5
- Aulas: 27
- Tempo de leitura: 10h 20min
- Tecnologias: Java
- Preço: Gratuito
Código do curso: github.com/johnpires/testes-java-junit5-mockito-cobertura
Aprenda a escrever testes automatizados de qualidade em Java utilizando as ferramentas mais utilizadas no mercado: JUnit 5 e Mockito. Este curso aborda desde os conceitos fundamentais de testes unitários até estratégias avançadas de mocking, verificação de comportamento e análise de cobertura de código.
Você aprenderá a estruturar suítes de testes profissionais, utilizar anotações modernas do JUnit 5, criar mocks e stubs com Mockito, e medir a qualidade dos seus testes com ferramentas de cobertura como JaCoCo. O curso também inclui testes de integração com Spring Boot Test e boas práticas para projetos reais.
Ao final, você será capaz de escrever testes confiáveis, manter alta cobertura de código e aplicar TDD (Test-Driven Development) em projetos Java do mundo real, aumentando a qualidade e a manutenibilidade do seu código.
Conteúdo do curso
Módulo 1: Fundamentos de Testes com JUnit 5
Introdução ao ecossistema de testes Java, configuração do JUnit 5 e escrita dos primeiros testes unitários.
- Por que Testar? Cultura de Qualidade em Java (15 min)
- Configurando o Ambiente JUnit 5 no Maven e Gradle (20 min)
- Estrutura de um Teste JUnit 5: @Test, @BeforeEach e @AfterEach (20 min)
- Ciclo de Vida dos Testes: @BeforeAll, @AfterAll e Instâncias (20 min)
- Organizando Testes com @DisplayName, @Tag e @Nested (20 min)
Módulo 2: Asserções Avançadas e Testes Parametrizados
Uso avançado de asserções JUnit 5, testes parametrizados, testes dinâmicos e organização de suítes.
- Asserções Básicas: assertEquals, assertNull e assertTrue (20 min)
- Asserções Agrupadas com assertAll e Melhores Práticas (20 min)
- Testando Exceções: assertThrows e assertDoesNotThrow (20 min)
- @ParameterizedTest: Múltiplos Casos de Teste Elegantes (25 min)
- Fontes de Dados: @MethodSource, @NullSource e @ArgumentsSource (25 min)
- Testes Dinâmicos com @TestFactory e DynamicTest (20 min)
Módulo 3: Mockito: Mocking, Stubs e Verificação
Criação de mocks e stubs com Mockito, verificação de comportamento e técnicas avançadas de mocking.
- Introdução ao Mockito: O que são Mocks e Stubs? (20 min)
- Criando Mocks com @Mock, @InjectMocks e MockitoExtension (25 min)
- Configurando Comportamento com when().thenReturn() e thenThrow() (25 min)
- Verificação de Interações com verify() e ArgumentCaptor (25 min)
- Spy: Partial Mocking e Técnicas Avançadas do Mockito (25 min)
- Mockito Avançado: ArgumentMatchers Customizados e BDD Style (25 min)
Módulo 4: Cobertura de Código com JaCoCo e Boas Práticas
Medição e análise de cobertura de testes com JaCoCo, integração com Maven/Gradle e melhores práticas.
- O que é Cobertura de Código? Métricas e Importância (20 min)
- Configurando e Usando JaCoCo com Maven e Gradle (25 min)
- TDD: Test-Driven Development na Prática com Java (30 min)
- Boas Práticas: FIRST, AAA e Clean Tests (20 min)
- Integrando JaCoCo com CI/CD e Análise de Qualidade (20 min)
Módulo 5: Projeto Final: Sistema de Gestão com Testes Completos
Desenvolvimento de um sistema completo de gestão aplicando JUnit 5, Mockito, testes de integração e alta cobertura.
- Apresentação do Projeto: Sistema de Gestão de Tarefas (20 min)
- Implementando Testes Unitários da Camada de Serviço (30 min)
- Testes de Integração com @DataJpaTest e @SpringBootTest (30 min)
- Projeto Final: Alta Cobertura com JaCoCo e Relatório de Qualidade (30 min)
- Testando APIs REST com MockMvc e Validando Respostas JSON (25 min)