📊 Slides: Cap 21 — Testes de Combate: Qualidade
Resumo visual da aula, em blocos — use como roteiro de revisão ou apresentação.
🟦 Slide 1: Objetivo da Aula
- Entender o que são Testes de Unidade.
- Criar scripts que verificam automaticamente os cálculos do jogo.
🟦 Slide 2: O Cenário Prático
Você mudou o cálculo de dano e quebrou a cura — agora os jogadores são imortais! Crie um Escudo de Qualidade: um teste que verifica se
10 - 2 = 8de dano, sempre.
🟦 Slide 3: Dicionário do Programador
| Termo | Significado |
|---|---|
| Teste de Unidade | Testar uma “peça” (função) isolada do app |
| Assert (Afirmar) | “Eu afirmo que o resultado deve ser X” — se for diferente, falha |
| Mock (Dublê) | “Servidor de mentira” para testes rápidos, sem internet — criado com mockk() e configurado com every { ... } returns ... |
📐 Padrão GIVEN / WHEN / THEN: Dado que (entrada) → Quando (ação) → Então (resultado esperado)
🟦 Slide 4: Do Teste ao Resultado
graph LR
A["Dados de Teste"] --> B(Sua Função)
B --> C[Resultado]
C --> D{Comparação: Assert}
D -->|Sucesso| E["✅ Teste Passou"]
🟦 Slide 5: Exemplo — Testando o Dano
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class CombateTest {
@Test
fun verificarCalculoDeDano() {
// GIVEN: Dado que o ataque é 10 e a defesa é 2
val ataque = 10
val defesa = 2
// WHEN: Quando calculamos o dano
val resultado = calcularDano(ataque, defesa)
// THEN: Então o resultado DEVE ser 8
assertEquals(8, resultado)
}
}
🟦 Slide 6: Avançado — Mock com MockK
- Testar uma função que depende de outro componente (ex: um serviço de ranking) sem usar a versão real.
val servicoFalso = mockk<RankingService>()cria o dublê.every { servicoFalso.buscarRecorde() } returns 100configura a resposta do dublê.
interface RankingService {
fun buscarRecorde(): Int
}
fun bateuRecorde(servico: RankingService, pontuacaoAtual: Int): Boolean {
return pontuacaoAtual > servico.buscarRecorde()
}
🟦 Slide 7: Prática e Próximos Passos
- 🛠️ Prática 1: teste
verificarVida(0)→"GAME OVER". - 🛠️ Prática 2: teste — XP nunca fica negativo.
- 🛠️ Prática 3: Mock com
RankingService—seNaoBaterRecorde_DeveRetornarFalse. - 💪 Exercício extra: testando com
assertTrue/assertFalse. - 🧠 Quiz: teste seus conhecimentos.
- ➡️ Próximo capítulo: Cap 22 — Boss Final (Lançando seu App).