Destino Dev

Cursos

Testes Java: JUnit 5, Mockito e Cobertura

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.

  1. Por que Testar? Cultura de Qualidade em Java (15 min)
  2. Configurando o Ambiente JUnit 5 no Maven e Gradle (20 min)
  3. Estrutura de um Teste JUnit 5: @Test, @BeforeEach e @AfterEach (20 min)
  4. Ciclo de Vida dos Testes: @BeforeAll, @AfterAll e Instâncias (20 min)
  5. 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.

  1. Asserções Básicas: assertEquals, assertNull e assertTrue (20 min)
  2. Asserções Agrupadas com assertAll e Melhores Práticas (20 min)
  3. Testando Exceções: assertThrows e assertDoesNotThrow (20 min)
  4. @ParameterizedTest: Múltiplos Casos de Teste Elegantes (25 min)
  5. Fontes de Dados: @MethodSource, @NullSource e @ArgumentsSource (25 min)
  6. 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.

  1. Introdução ao Mockito: O que são Mocks e Stubs? (20 min)
  2. Criando Mocks com @Mock, @InjectMocks e MockitoExtension (25 min)
  3. Configurando Comportamento com when().thenReturn() e thenThrow() (25 min)
  4. Verificação de Interações com verify() e ArgumentCaptor (25 min)
  5. Spy: Partial Mocking e Técnicas Avançadas do Mockito (25 min)
  6. 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.

  1. O que é Cobertura de Código? Métricas e Importância (20 min)
  2. Configurando e Usando JaCoCo com Maven e Gradle (25 min)
  3. TDD: Test-Driven Development na Prática com Java (30 min)
  4. Boas Práticas: FIRST, AAA e Clean Tests (20 min)
  5. 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.

  1. Apresentação do Projeto: Sistema de Gestão de Tarefas (20 min)
  2. Implementando Testes Unitários da Camada de Serviço (30 min)
  3. Testes de Integração com @DataJpaTest e @SpringBootTest (30 min)
  4. Projeto Final: Alta Cobertura com JaCoCo e Relatório de Qualidade (30 min)
  5. Testando APIs REST com MockMvc e Validando Respostas JSON (25 min)