Templates para Criação de Testes Automatizados e Fixtures

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

Templates para Criação de Testes Automatizados e Fixtures

O que você vai aprender

1. O Que É um Teste Automatizado e Por Que Você Precisa Dele?

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.

2. A Estrutura de um Teste: Entrada, Execução e Asserção

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     |             |
|                                       +─────────────────────────+             |
|                                                                               |
+-------------------------------------------------------------------------------+

3. O Template de Geração de Testes para IA

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.

4. Os Três Tipos de Cenários de Teste

| 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. |

5. Armadilhas Comuns e Como Evitar

[!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.

Exercício Prático

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.

Outras aulas do módulo