Capítulo 18: Testes Automatizados ❌🧬

Neste capítulo, vamos aprender o conceito de Testes Automatizados no C#. Para manter as coisas simples e sem precisar instalar pacotes extras, vamos criar nossos próprios testes manuais usando código, com o tema dos X-Men (Sala de Perigo)!


📖 Por que fazer Testes?

Testar o código garante que ele funciona como esperado e que não vai quebrar se mudarmos algo no futuro. É como o treinamento dos X-Men na Sala de Perigo: simula situações reais para ver se o herói está pronto!


📖 Exemplo Guiado: Testando o Poder de Ataque

Vamos criar uma função que calcula o dano e uma função de teste para verificar se o cálculo está correto.

  1. Crie o arquivo combate_teste.cs na pasta src/:
using System;
 
// Função que queremos testar
int CalcularDano(int forca, int defesa) {
    int dano = forca - defesa;
    if (dano < 0) {
        return 0;
    }
    return dano;
}
 
// Função de Teste
void TestarCalcularDano() {
    Console.WriteLine("Iniciando Simulador da Sala de Perigo...");
    
    int resultado = CalcularDano(50, 30);
    int esperado = 20;
 
    if (resultado == esperado) {
        Console.WriteLine("✅ TESTE PASSOU: Calculo de dano correto!");
    } else {
        Console.WriteLine($"❌ TESTE FALHOU: Esperava {esperado}, mas veio {resultado}");
    }
}
 
// Executando o teste
TestarCalcularDano();

🕹️ Como Executar e Testar no VS Code

  1. Execute o projeto usando dotnet run.

Resultado Esperado:

Iniciando Simulador da Sala de Perigo...
✅ TESTE PASSOU: Calculo de dano correto!

📊 Ilustração Visual: O Ciclo de Testes

Veja como o teste funciona:

graph LR
    A[Código] -->|Executa| B{Simulador}
    B -->|Sucesso| C[PASS]
    B -->|Falha| D[FAIL]

🛠️ Prática Obrigatória 1: Testando Cura

Crie uma função Curar(int vidaAtual, int cura) que some a vida e a cura (o limite máximo de vida é 100). Depois, crie uma função de teste TestarCurar() para verificar se a cura funciona e se respeita o limite de 100! Chame a função de teste no final.


🔑 Gabarito de Código

Prática 1: cura_teste.cs

using System;
 
int Curar(int vidaAtual, int cura) {
    int total = vidaAtual + cura;
    if (total > 100) {
        return 100;
    }
    return total;
}
 
void TestarCurar() {
    int res = Curar(80, 30);
    int esp = 100; // Não pode passar de 100!
 
    if (res == esp) {
        Console.WriteLine("✅ TESTE PASSOU: Sistema de cura ok!");
    } else {
        Console.WriteLine($"❌ TESTE FALHOU: Esperava {esp}, mas veio {res}");
    }
}
 
TestarCurar();

Capitulo Anterior | Proximo Capitulo