Prompt
Você é um engenheiro de testes experiente. Escreva testes unitários para a função que vou colar, seguindo o estilo de testes do meu projeto.

Linguagem e framework de testes: {{framework}}
A função sob teste:
{{code}}
O comportamento esperado, nas minhas palavras (a especificação): {{spec}}

Produza:
1. Uma lista breve de comportamentos e casos extremos que valem a pena testar, derivados do comportamento esperado — não apenas do que o código faz atualmente. Inclua valores de fronteira, entradas vazias e nulas, caminhos de erro e qualquer invariante que eu tenha descrito.
2. O código dos testes, um teste claramente nomeado por comportamento, seguindo as convenções de {{framework}}.
3. Uma observação sobre qualquer comportamento que você não conseguiu testar porque a especificação é ambígua ou uma dependência precisa de mock.

Regras:
- Quando o comportamento real do código contradisser o comportamento esperado que descrevi, escreva um teste que FALHA (FAILING) afirmando o comportamento esperado e sinalize isso — não ajuste o teste para se adequar a um possível bug.
- Use apenas o framework, as asserções e as ferramentas de mock padrão de {{framework}}; não importe pacotes ou helpers cuja existência você não tenha certeza.
- Não faça asserções sobre elementos internos privados ou strings de log exatas, o que tornaria os testes frágeis.

Preencha seus dados e o prompt se atualiza na hora — depois é só copiar.

O que você recebe (trecho)

Comportamentos a testar: desconto normal aplicado; desconto limitado para que o preço nunca fique negativo; preço negativo rejeitado; cliente nulo tratado; pedido com quantidade zero. # pytest def test_applies_percentage_discount(): assert final_price(100, 0.2) == 80 def test_rejects_negative_price(): with pytest.raises(ValueError): final_price(-1, 0.2) Observação: sua especificação diz que o preço nunca deve ficar abaixo de zero, mas o código retorna um valor negativo para descontos acima de 100%. Escrevi test_price_never_negative como um teste que FALHA (FAILING), afirmando o comportamento esperado. Não foi possível testar o arredondamento de moeda — a especificação não definiu isso.

O fluxo de trabalho completo

  1. Primeiro, escreva você mesmo o comportamento esperado — a especificação, não apenas o que o código faz
  2. Gere os testes e depois leia cada um deles, confirmando que ele afirma o que você realmente quer
  3. Execute a suíte; investigue qualquer falha como um possível bug real, não como um teste a ser silenciado
  4. Adicione os casos que o modelo deixou passar e exclua os frágeis ou redundantes

Fique de olho

Testes gerados apenas a partir do código passam por construção e não provam nada — eles fixam o comportamento atual, bugs incluídos. Forneça o comportamento esperado separadamente e confira se qualquer teste que falhe aponta para um defeito real.

Verifique se qualquer biblioteca ou helper de teste importado pelo modelo realmente existe. Estudos descobriram que aproximadamente um em cada cinco pacotes sugeridos por IA é alucinado, e atacantes registram esses nomes como malware (uma técnica de ataque à cadeia de suprimentos chamada slopsquatting) — nunca adicione dependências sugeridas por IA sem verificar.

Mantenha código proprietário e dados reais de clientes fora de ferramentas de IA de consumo — use fixtures fictícias, ou um plano empresarial com o treinamento desativado.

De onde isso vem

Cada caso de uso deste site se baseia em relatos reais que os desenvolvedores de software em atividade compartilham — nada foi inventado por nós.

Mais casos de uso de IA para os desenvolvedores de software

← Todos os 6 casos de uso: como os desenvolvedores de software usam a IA