Templates para Criação de Testes Automatizados e Fixtures — aula do módulo Templates de Prompt & OpenCRO, na trilha Governança Ágil com Método OKAM da…
Leitura de aproximadamente 4 minutos.
Módulo: Templates de Prompt & OpenCRO · Curso: Governança Ágil com Método OKAM · Formação: Formação Nível Zero: Ferramentas Essenciais e Gratuitas de IA e Código
Imagine que você gerencia uma loja e contratou um assistente para atualizar a fórmula de cálculo de descontos da sua planilha.
Como você tem certeza de que a nova fórmula está correta?
No desenvolvimento de software, Testes Automatizados são pequenos scripts que executam suas funções passando dados conhecidos e verificam se o resultado obtido bate exatamente com o resultado esperado.
Quando você trabalha com inteligência artificial, ter testes automatizados é o que permite aceitar mudanças sugeridas pelo assistente com total tranquilidade. Se todos os testes continuarem verdes após a edição da IA, você sabe que o sistema permanece saudável.
Todo teste automatizado segue uma lógica simples em três passos:
+-------------------------------------------------------------------------------+
| ANATOMIA DE UM TESTE AUTOMATIZADO |
+-------------------------------------------------------------------------------+
| |
| 1. MASSA DE TESTE (FIXTURES) 2. EXECUÇÃO DA FUNÇÃO |
| +──────────────────────────+ +─────────────────────────+ |
| | Preço: R$ 100,00 | ───> | calcularDesconto(100,10)| |
| | Cupom: 10% | | (Código sob teste) | |
| +──────────────────────────+ +─────────────────────────+ |
| │ |
| ▼ |
| 3. ASSERÇÃO / VALIDAÇÃO |
| +─────────────────────────+ |
| | Esperado: R$ 90,00 | |
| | Obtido: R$ 90,00 | |
| | Status: ✅ PASSOU | |
| +─────────────────────────+ |
| |
+-------------------------------------------------------------------------------+
Ao pedir para a IA criar testes para o seu código, utilize o modelo padronizado abaixo para garantir que ela cubra não apenas os casos óbvios, mas também os cenários onde os erros costumam se esconder:
# Solicitação de Criação de Testes Automatizados
## 1. Alvo do Teste
- Arquivo sob teste: `src/calculadora.js`
- Função a ser testada: `calcularDesconto(preco, percentual)`
## 2. Cenários Obrigatórios de Cobertura
1. **Caminho Feliz (Sucesso Padrão)**:
- Entrada: `preco = 100`, `percentual = 15` => Resultado esperado: `85`.
2. **Casos Extremos (Edge Cases)**:
- Desconto zero: `preco = 100`, `percentual = 0` => Resultado esperado: `100`.
- Desconto total (100%): `preco = 100`, `percentual = 100` => Resultado esperado: `0`.
- Valores decimais: `preco = 99.90`, `percentual = 10` => Resultado esperado: `89.91`.
3. **Casos de Erro e Validação**:
- Preço negativo (`preco = -10`): Deve disparar mensagem de erro.
- Percentual maior que 100 (`percentual = 150`): Deve disparar mensagem de erro.
## 3. Restrições Técnicas
- Salve os testes na pasta `tests/calculadora.test.js`.
- Escreva testes simples, legíveis e com mensagens explicativas em caso de falha.
| Tipo de Cenário | O que valida | Exemplo no Mundo Real | |---|---|---| | **Caminho Feliz (Happy Path) | A operação padrão em condições normais. | Usuário digita e-mail correto e senha válida. | | Caso Extremo (Edge Case) | Situações no limite dos valores aceitos. | Usuário cadastra um produto de R$ 0,01 ou um nome com 255 caracteres. | | Caso de Erro (Error Handling)** | Como o sistema reage a dados inválidos. | Usuário digita letras no campo de telefone ou tenta enviar formulário em branco. |
[!IMPORTANT]
Permitir que a IA Crie Apenas Testes do "Caminho Feliz": Se você apenas pedir "crie testes para este arquivo", a IA criará dois testes superficiais que passam facilmente. Quase todos os bugs reais em produção acontecem nos casos extremos (campos vazios, números negativos ou caracteres especiais). Exija explicitamente a cobertura de casos extremos no seu prompt.
Vamos criar um pequeno teste em JavaScript para validar uma função de desconto:
1. Crie a função no projeto: No arquivo src/desconto.js, crie a seguinte lógica:
function aplicarDesconto(valor, taxa) {
if (valor < 0 || taxa < 0 || taxa > 100) {
throw new Error("Valores inválidos");
}
return valor - (valor * (taxa / 100));
}
module.exports = { aplicarDesconto };
2. Crie o arquivo de teste simples: No arquivo tests/desconto.test.js:
const { aplicarDesconto } = require('../src/desconto');
// Teste 1: Caminho Feliz
console.assert(aplicarDesconto(100, 20) === 80, "Falha no Teste 1: 100 com 20% deve ser 80");
// Teste 2: Desconto Zero
console.assert(aplicarDesconto(50, 0) === 50, "Falha no Teste 2: 50 com 0% deve ser 50");
console.log("Todos os testes passaram com sucesso!");
3. Execute o teste no terminal:
node tests/desconto.test.js
Se a mensagem "Todos os testes passaram com sucesso!" aparecer sem nenhum alerta, seu primeiro teste automatizado está operante e validado.