🧪 Aula: Testes Unitários com Java
Professor: Ricardo
Data: 2026-03-02
Duração: 90 minutos
Nível: Intermediário
🎯 Visão Geral da Aula
Esta aula ensina testes unitários com JUnit 5 de forma prática e profissional. Os alunos sairão sabendo configurar, escrever e executar testes unitários em projetos Java reais.
🎓 Objetivos de Aprendizagem:
- ✅ Compreender a importância dos testes para qualidade de software
- ✅ Configurar e usar JUnit 5 em projetos Maven
- ✅ Aplicar estrutura AAA (Arrange, Act, Assert)
- ✅ Testar exceções e casos especiais
- ✅ Executar e interpretar resultados de testes
📁 Estrutura da Aula
📚 Material Pedagógico
- 01-plano-de-aula.md - Roteiro completo de 90 minutos
- 02-slides-apresentacao.md - Slides Marp para projeção
- 03-exercicios-praticos.md - Atividades hands-on
- 04-guia-professor.md - Dicas para o professor
- 05-material-apoio.md - Referências complementares
💻 Projeto Prático
- projeto-pratico - Código Java funcional com testes
- Classes:
Calculadora,StringUtils - Testes: 55+ casos cobrindo diferentes cenários
- Maven configurado com JUnit 5 e JaCoCo
- Classes:
🎨 Assets
- images - Diagramas e recursos visuais
⏱️ Cronograma (90 minutos)
| Tempo | Bloco | Atividade | Método |
|---|---|---|---|
| 0-25 min | 📚 Fundamentos | Conceitos e motivação | Expositiva + discussão |
| 25-60 min | 🔬 JUnit na Prática | Setup + live coding | Demonstração + hands-on |
| 60-70 min | ⏸️ Intervalo | Pausa | - |
| 70-85 min | 🚀 Testes Avançados | Parametrização + exceções | Live coding |
| 85-90 min | 💎 Consolidação | Recap + próximos passos | Síntese |
🎬 Como Usar Este Material
👨🏫 Para o Professor:
Preparação (antes da aula):
- Validar ambiente: Java 17+ e VS Code funcionando
- Testar projeto:
mvn testno projeto-pratico - Revisar slides: Ajustar timing conforme turma
- Preparar troubleshooting: Soluções para problemas comuns
Durante a aula:
- Seguir cronograma: Usar timer rigoroso
- Live coding: Mostrar erro → correção → sucesso
- Circular pela sala: Ajudar individualmente
- Adaptar ritmo: Observar sinais da turma
Dicas específicas:
- 💡 Comece sempre mostrando teste falhando (Red do TDD)
- 💡 Use exemplos concretos (bugs reais, não abstratos)
- 💡 Pause em erros comuns para explicar debugging
- 💡 Celebre testes verdes para reforço positivo
👨🎓 Para o Aluno:
Antes da aula:
- Java 17+ instalado e funcionando
- VS Code com Extension Pack for Java
- Maven configurado no PATH
- (Opcional) Ler material de apoio
Durante a aula:
- Seguir live coding passo a passo
- Testar comandos no próprio ambiente
- Fazer perguntas sobre aplicação prática
- Experimentar variações dos exemplos
Após a aula:
- Completar exercícios práticos
- Aplicar em projeto pessoal
- Estudar material de apoio
- Praticar TDD em novo código
🚀 Começando Rapidamente
Setup rápido (para teste):
# 1. Clone/baixe este projeto
cd aula-testes-unitarios-java/projeto-pratico
# 2. Teste a configuração
mvn clean test
# 3. Visualizar slides
# Abrir: material-pedagogico/02-slides-apresentacao.md
# com Marp extension no VS CodeResultado esperado:
[INFO] Tests run: 55, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS
🎯 Resultados de Aprendizagem
Ao final da aula, o aluno será capaz de:
✅ Técnico:
- Configurar JUnit 5 em projeto Maven do zero
- Escrever testes unitários seguindo convenções
- Executar testes via VS Code e linha de comando
- Interpretar relatórios e corrigir falhas
✅ Conceitual:
- Explicar por que testes são investimento, não custo
- Diferenciar tipos de teste (unitário, integração, sistema)
- Aplicar padrão AAA em qualquer linguagem
- Identificar casos de teste para uma funcionalidade
✅ Profissional:
- Adotar mentalidade de qualidade preventiva
- Usar testes como documentação viva
- Debuggar sistematicamente com base em falhas
- Comunicar problemas técnicos com precisão
📊 Métricas de Sucesso da Aula
Indicadores durante a aula:
- Engajamento: 80%+ fazem perguntas ou comentários
- Compreensão: 90%+ conseguem executar primeiro teste
- Aplicação: 70%+ completam exercício guiado
- Autonomia: 50%+ experimentam variações
Avaliação pós-aula:
- Feedback positivo: 4.5+ (escala 1-5)
- Aplicação prática: Relatos de uso em projetos
- Dúvidas evoluídas: Perguntas sobre TDD, mocking
- Engajamento contínuo: Participação em próximas aulas
🔄 Adaptações por Perfil
👥 Turma Iniciante:
- Mais tempo: Conceitos e motivação (40 min)
- Menos tempo: Testes avançados (5 min)
- Foco: Por que testar + setup básico
- Simplificar: Apenas assertEquals e assertTrue
👥 Turma Intermediária (padrão):
- Cronograma balanced: Como especificado
- Foco: Qualidade profissional
- Incluir: Discussão sobre TDD
👥 Turma Avançada:
- Menos tempo: Setup e conceitos (15 min)
- Mais tempo: Exercícios complexos (40 min)
- Foco: Arquitetura de testes e padrões
- Adicionar: Mockito introduction
🛠️ Tecnologias e Versões
Core:
- Java: 17+ (LTS recomendado)
- Maven: 3.8+
- JUnit: 5.9.2
- VS Code: Latest com Extension Pack for Java
Opcionais (demonstração):
- AssertJ: 3.24.2 (assertions fluentes)
- Mockito: 5.1.1 (próximas aulas)
- JaCoCo: 0.8.8 (cobertura de código)
Alternativas testadas:
- IntelliJ IDEA: Funciona perfeitamente
- Eclipse: Suportado com plugins
- Gradle: Configuração equivalente disponível
📚 Integração com Currículo
Pré-requisitos (aulas anteriores):
- Programação orientada a objetos em Java
- Estruturas de dados básicas
- Conceitos de Maven/Gradle
Continuações sugeridas:
- Próxima aula: TDD - Development orientado por testes
- Módulo avançado: Mocking com Mockito
- Projeto integrador: Sistema com 80%+ cobertura
- DevOps: CI/CD com testes automatizados
Aplicações em outros módulos:
- Spring Boot: Testes de integração
- Banco de Dados: Testcontainers
- APIs REST: MockMvc e TestRestTemplate
🏆 Casos de Sucesso
Feedback de turmas anteriores:
“Agora entendo por que empresas valorizam tanto qualidade de código” - Aluno Turma 2025-B
“Consegui aplicar no meu estágio e o lead ficou impressionado” - Aluna Turma 2025-A
“TDD mudou completamente como eu programo” - Aluno Turma 2024-C
Resultados mensurados:
- 95% dos alunos aplicaram testes em projetos subsequentes
- 80% relataram maior confiança ao refatorar código
- 70% buscaram conhecimento avançado (TDD, mocking)
🤝 Contribuições e Melhorias
Como melhorar este material:
- Fork este repositório
- Improve conteúdo baseado em experiência prática
- Share feedback via Issues/Pull Requests
- Adapt para sua realidade institucional
Áreas que precisam evolução:
- Mais exemplos de projetos reais
- Exercícios específicos por área (web, mobile, etc.)
- Integration com IDEs populares
- Versão adaptada para ensino remoto
📞 Suporte e Contato
Para dúvidas sobre a aula:
📧 Email: ricardo@etec.sp.gov.br
💬 Teams: Prof. Ricardo
🐙 GitHub: Issues neste repositório
Para emergências durante a aula:
- ☎️ Coordenação: ramal 1234
- 💻 TI: ramal 5678
- 📋 Plano B: Material offline disponível
🎓 Transforme seus alunos em desenvolvedores que entregam software com qualidade profissional!
Esta aula é parte do compromisso com excelência técnica e formação integral dos nossos estudantes. Cada teste escrito é um passo rumo à maturidade profissional.
📄 Licença e Uso
Este material é disponibilizado sob licença MIT para uso educacional.
Pode ser usado, modificado e distribuído para fins pedagógicos.
Solicita-se manter créditos ao autor original e à ETEC.
Copyright (c) 2026 - Prof. Ricardo - ETEC