Guia de IA para Testes Unitários: Zero Alucinação

A IA frequentemente falha em testes unitários. Ela inventa métodos. Cria estruturas de mock incorretas. Usa imports inexistentes. Isso acontece porque a IA carece de um contexto rigoroso.

Você pode interromper isso usando um sistema determinístico. Você deve passar de "adivinhação" para "imposição de regras".

Aqui está o padrão para testes unitários com zero alucinação em cinco grandes stacks.

O Padrão de Tech Stack

Escolha uma biblioteca por stack. Não as misture.

  • Node.js (NestJS/Express): Jest
  • React.js: Vitest + React Testing Library
  • Python: pytest
  • Angular: Jest
  • Laravel: Pest

O Segredo: Regras de Escopo de Projeto

Prompts padrão não são suficientes. Você precisa injetar regras diretamente no seu IDE. Se você usa o Cursor, use o diretório .cursor/rules/.

Crie arquivos de regras específicos para cada tecnologia:

  • unit-test-global.mdc: Define o padrão AAA (Arrange, Act, Assert).
  • unit-test-nestjs.mdc: Impõe o uso de TestingModule e jest-mock-extended.
  • unit-test-react.mdc: Exige o uso de user-event em vez de fireEvent.
  • unit-test-python.mdc: Padroniza os padrões de pytest-mock.
  • unit-test-laravel.mdc: Garante a sintaxe do Pest e o uso do Mockery.

Esses arquivos atuam como um contrato. A IA os lê antes de cada prompt. Isso evita alucinações na origem.

O Contrato de Teste Unitário

Todo teste deve seguir estas cinco regras:

  • Isolamento: Faça o mock de todas as dependências externas. Sem chamadas reais de DB ou HTTP.
  • Estrutura: Use AAA. Sempre comente seus blocos Arrange, Act e Assert.
  • Nomenclatura: Use "should [behavior] when [condition]". Evite nomes vagos como "test 1".
  • Cobertura: Teste o caminho feliz (happy path), entradas nulas, caminhos de erro e casos de borda (edge cases).
  • Velocidade: Cada teste deve ser executado em menos de 100ms.

Passos de Implementação

  1. Configure sua biblioteca e arquivos de configuração.
  2. Crie sua pasta .cursor/rules/.
  3. Adicione um arquivo CLAUDE.md na raiz do seu projeto para atuar como memória permanente.
  4. Defina limites de cobertura em seu pipeline de CI (mire em 80% de linhas).
  5. Use hooks de pre-commit para garantir que nenhum código não testado entre no repositório.

Pare de pedir para a IA escrever testes. Comece a dizer à IA como escrever testes.

Fonte: https://dev.to/bhaumik-viitor/unit-test-ai-guide-zero-hallucination-cross-stack-standard-4mb2

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi