Pular para o conteúdo
Skillpedia
Testes48 mil · #4354

test-driven-development

Ajuda seu agente a escrever testes que guiam o desenvolvimento de novas funcionalidades ou correções de bugs.

O que ela faz

Essa ferramenta ajuda a escrever código de forma mais confiável. Você escreve um teste que descreve o que você quer que o código faça, depois faz o código funcionar para passar nesse teste.

Quando usar

  • ✓Ao adicionar uma nova funcionalidade.
  • ✓Ao corrigir um erro.
  • ✓Quando você quer ter certeza que o código faz o que deveria.

Exemplo do que pedir para a IA

“Escreva um teste que falha para a funcionalidade de login e depois crie o código para que ele passe.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/test-driven-development/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/test-driven-development/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Primeiro, você escreve um teste que sabe que vai falhar. Depois, escreve o mínimo de código necessário para que esse teste passe. Por fim, você pode limpar o código sem quebrar o teste.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill test-driven-development

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/test-driven-development/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Test-Driven Development (TDD)

Visão Geral

Escreva o teste primeiro. Veja ele falhar. Escreva o código mínimo para passar.

Princípio central: Se você não viu o teste falhar, você não sabe se ele testa a coisa certa.

Violar a letra das regras é violar o espírito das regras.

Quando Usar

Use para mudanças de comportamento onde um teste repetível pode demonstrar o requisito ou reproduzir o bug. Inspecione o executor de testes do repositório e a cobertura existente primeiro. Para cópias, saídas geradas ou configurações de baixo impacto, use a validação focada apropriada em vez de fabricar um teste unitário.

Preserve o trabalho existente

Escreva a regressão falha antes do reparo, quando viável, e verifique se ela falha pelo motivo esperado. Se a implementação já existe, preserve-a e adicione testes de caracterização/regressão. Não exclua trabalho do usuário, reinicie um branch ou reescreva código funcionando para reconstruir um histórico ideal de "teste primeiro". Declare honestamente se o teste precedeu a correção.

Red-Green-Refactor

digraph tdd_cycle {
    rankdir=LR;
    red [label="RED\nWrite failing test", shape=box, style=filled, fillcolor="#ffcccc"];
    verify_red [label="Verify fails\ncorrectly", shape=diamond];
    green [label="GREEN\nMinimal code", shape=box, style=filled, fillcolor="#ccffcc"];
    verify_green [label="Verify passes\nAll green", shape=diamond];
    refactor [label="REFACTOR\nClean up", shape=box, style=filled, fillcolor="#ccccff"];
    next [label="Next", shape=ellipse];

    red -> verify_red;
    verify_red -> green [label="yes"];
    verify_red -> red [label="wrong\nfailure"];
    green -> verify_green;
    verify_green -> refactor [label="yes"];
    verify_green -> green [label="no"];
    refactor -> verify_green [label="stay\ngreen"];
    verify_green -> next;
    next -> red;
}

RED - Escreva o Teste Falho

Escreva um teste mínimo mostrando o que deveria acontecer.

<Bom> ```typescript test('succeeds on the third attempt', async () => { let attempts = 0; const operation = async () => { attempts++; if (attempts < 3) throw new Error('fail'); return 'success'; };

const result = await retryOperation(operation);

expect(result).toBe('success'); expect(attempts).toBe(3); });

Nome claro, testa comportamento real, uma coisa
</Bom>

<Ruim>
```typescript
test('retry works', async () => {
  const mock = jest.fn()
    .mockRejectedValueOnce(new Error())
    .mockRejectedValueOnce(new Error())
    .mockResolvedValueOnce('success');
  await retryOperation(mock);
  expect(mock).toHaveBeenCalledTimes(3);
});

Nome vago, testa mock, não o código </Ruim>

Requisitos:

  • Um comportamento
  • Nome claro
  • Código real (sem mocks, a menos que inevitável)

Verifique RED - Veja Ele Falhar

OBRIGATÓRIO. Nunca pule.

npm test path/to/test.test.ts

Confirme:

  • Teste falha (não erros)
  • Mensagem de falha é esperada
  • Falha porque a funcionalidade está faltando (não erros de digitação)

Teste passa? Determine se ele já caracteriza o comportamento necessário. Para uma regressão, prove que ele detecta o defeito usando a revisão anterior ou uma mudança controlada isolada; não altere uma asserção correta apenas para forçar o vermelho.

Teste dá erro? Corrija o erro, reexecute até que ele falhe corretamente.

GREEN - Código Mínimo

Escreva o código mais simples para passar o teste.

<Bom> ```typescript async function retryOperation<T>(fn: () => Promise<T>): Promise<T> { for (let i = 0; i < 3; i++) { try { return await fn(); } catch (e) { if (i === 2) throw e; } } throw new Error('unreachable'); } ``` Apenas o suficiente para passar </Bom> <Ruim> ```typescript async function retryOperation<T>( fn: () => Promise<T>, options?: { maxRetries?: number; backoff?: 'linear' | 'exponential'; onRetry?: (attempt: number) => void; } ): Promise<T> { // YAGNI } ``` Superengenharia </Ruim>

Não adicione funcionalidades, refatore outro código ou "melhore" além do teste.

Verifique GREEN - Veja Ele Passar

OBRIGATÓRIO.

npm test path/to/test.test.ts

Confirme:

  • Teste passa
  • Outros testes ainda passam
  • Saída limpa (sem erros, avisos)

Teste falha? Corrija o código, não o teste.

Outros testes falham? Corrija agora.

REFACTOR - Limpeza

Após o verde apenas:

  • Remova duplicação
  • Melhore nomes
  • Extraia helpers

Mantenha os testes verdes. Não adicione comportamento.

Repita

Próximo teste falho para a próxima funcionalidade.

Bons Testes

Qualidade Bom Ruim

…

Perguntas frequentes

Por que escrever o teste antes?

Escrever o teste antes garante que você sabe exatamente o que o código precisa fazer e que o teste realmente verifica o comportamento desejado.

O que significa 'vermelho-verde-refatorar'?

É um ciclo: 'Vermelho' (escrever teste que falha), 'Verde' (escrever código mínimo para passar) e 'Refatorar' (limpar o código mantendo os testes passando).

Posso escrever o código primeiro?

É possível, mas escrever o teste primeiro ajuda a evitar erros e garante que o código atenda aos requisitos desde o início.

Detalhes

Descrição original do autor

Use a failing behavioral test to guide a feature or bug fix, then implement and refactor with relevant regression checks.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4354
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas