ricardonevesbraga/flowgrammers-skills/tdd-guide
Claude Code and agent skill by ricardonevesbraga/flowgrammers-skills
- community
Checking that the SKILL.md file is still in the repository.
Skill de desenvolvimento orientado a testes para escrever testes unitários, gerar fixtures e mocks de teste, analisar lacunas de cobertura e guiar workflows red-green-refactor em Jest, Pytest, JUnit, Vitest e Mocha. Use quando o usuário pedir para escrever testes, melhorar cobertura de testes, praticar TDD, gerar mocks ou stubs, ou mencionar frameworks de teste como Jest, pytest ou JUnit.
Install
npx vskill@latest install ricardonevesbraga/flowgrammers-skills/tdd-guideSKILL.md
Guia de TDD
Skill de desenvolvimento orientado a testes para gerar testes, analisar cobertura e guiar workflows red-green-refactor em Jest, Pytest, JUnit e Vitest.
Workflows
Gerar Testes a partir do Código
- Forneça o código-fonte (TypeScript, JavaScript, Python, Java)
- Especifique o framework alvo (Jest, Pytest, JUnit, Vitest)
- Execute
test_generator.pycom os requisitos - Revise os stubs de teste gerados
- Validação: Testes compilam e cobrem caminho feliz, casos de erro, casos extremos
Analisar Lacunas de Cobertura
- Gere relatório de cobertura a partir do test runner (
npm test -- --coverage) - Execute
coverage_analyzer.pyno relatório LCOV/JSON/XML - Revise lacunas priorizadas (P0/P1/P2)
- Gere testes ausentes para caminhos não cobertos
- Validação: Cobertura atinge threshold alvo (tipicamente 80%+)
TDD de Nova Funcionalidade
- Escreva o teste que falha primeiro (RED)
- Execute
tdd_workflow.py --phase redpara validar - Implemente código mínimo para passar (GREEN)
- Execute
tdd_workflow.py --phase greenpara validar - Refatore mantendo os testes verdes (REFACTOR)
- Validação: Todos os testes passam após cada ciclo
Exemplos
Geração de Teste — Entrada → Saída (Pytest)
Função-fonte de entrada (`math_utils.py`):
Comando:
Saída de teste gerada (`test_math_utils.py`):
Análise de Cobertura — Exemplo de Saída P0/P1/P2
Comando:
Exemplo de saída:
Ferramentas Principais
| Ferramenta | Propósito | Uso | |
|---|---|---|---|
test_generator.py | Gerar casos de teste a partir de código/requisitos | python scripts/test_generator.py --input source.py --framework pytest | |
coverage_analyzer.py | Analisar e processar relatórios de cobertura | python scripts/coverage_analyzer.py --report lcov.info --threshold 80 | |
tdd_workflow.py | Guiar ciclos red-green-refactor | python scripts/tdd_workflow.py --phase red --test test_auth.py | |
fixture_generator.py | Gerar dados de teste e mocks | python scripts/fixture_generator.py --entity User --count 5 |
Scripts adicionais: framework_adapter.py (converter entre frameworks), metrics_calculator.py (métricas de qualidade), format_detector.py (detectar linguagem/framework), output_formatter.py (saída CLI/desktop/CI).
Requisitos de Entrada
Para Geração de Teste:
- Código-fonte (caminho de arquivo ou conteúdo colado)
- Framework alvo (Jest, Pytest, JUnit, Vitest)
- Escopo de cobertura (unit, integration, edge cases)
Para Análise de Cobertura:
- Arquivo de relatório de cobertura (formato LCOV, JSON ou XML)
- Opcional: Código-fonte para contexto
- Opcional: Percentual threshold alvo
Para Workflow TDD:
- Requisitos de funcionalidade ou história de usuário
- Fase atual (RED, GREEN, REFACTOR)
- Código de teste e status de implementação
Workflow Spec-Primeiro
TDD é mais eficaz quando orientado por uma spec escrita. O fluxo:
- Escrever ou receber uma spec — armazenada em
specs/<feature>.md - Extrair critérios de aceitação — cada critério vira um ou mais casos de teste
- Escrever testes que falham (RED) — um teste por critério de aceitação
- Implementar código mínimo (GREEN) — satisfazer cada teste em ordem
- Refatorar — limpar enquanto todos os testes permanecem verdes
Convenção de Diretório de Spec
Extraindo Testes de Specs
Cada critério de aceitação em uma spec mapeia para pelo menos um teste:
| Critério da Spec | Caso de Teste | |
|---|---|---|
| "Usuário pode fazer login com credenciais válidas" | test_login_valid_credentials_returns_token | |
| "Senha inválida retorna 401" | test_login_invalid_password_returns_401 | |
| "Conta bloqueia após 5 tentativas falhas" | test_login_locks_after_five_failures |
Dica: Numere seus critérios de aceitação na spec. Referencie o número na docstring do teste para rastreabilidade (# AC-3: Conta bloqueia após 5 tentativas falhas).
Cross-reference: Vejaengineering/spec-driven-workflowpara a metodologia completa de spec, incluindo templates de spec e checklists de revisão.
Exemplos Red-Green-Refactor por Linguagem
TypeScript / Jest
Python / Pytest (Padrões Avançados)
Go — Testes Orientados a Tabela
Regras de Autonomia Delimitada
Ao gerar testes autonomamente, siga estas regras para decidir quando parar e perguntar ao usuário:
Pare e Pergunte Quando
- Requisitos ambíguos — a spec ou história de usuário tem critérios de aceitação conflitantes ou unclear
- Edge cases ausentes — não é possível determinar valores limite sem conhecimento de domínio (ex.: valor máximo de transação permitido)
- Contagem de testes excede 50 — grandes suites de teste precisam de revisão humana antes de commitar; apresente um resumo e pergunte quais áreas priorizar
- Dependências externas unclear — a funcionalidade depende de APIs ou serviços de terceiros com comportamento não documentado
- Lógica sensível à segurança — autenticação, autorização, criptografia ou fluxos de pagamento requerem aprovação humana nos cenários de teste
Continue Autonomamente Quando
- Spec clara com critérios de aceitação numerados — cada critério mapeia diretamente para testes
- Operações CRUD diretas — criar, ler, atualizar, deletar com modelos bem definidos
- Contratos de API bem definidos — spec OpenAPI ou interfaces tipadas disponíveis
- Funções puras — entrada/saída determinística sem efeitos colaterais
- Padrões de teste existentes — a base de código já possui testes similares para seguir
Testes Baseados em Propriedades
Testes baseados em propriedades geram entradas aleatórias para verificar invariantes em vez de depender de exemplos escolhidos manualmente. Use quando o espaço de entrada é grande e o comportamento esperado pode ser descrito como uma propriedade.
Python — Hypothesis
TypeScript — fast-check
Quando Usar Baseado em Propriedades vs Baseado em Exemplo
| Use Baseado em Propriedades | Exemplo | |
|---|---|---|
| Transformações de dados | Roundtrips de serialização/desserialização | |
| Propriedades matemáticas | Comutatividade, associatividade, idempotência | |
| Codificação/decodificação | Base64, codificação URL, compressão | |
| Ordenação e filtragem | Saída está ordenada, comprimento preservado | |
| Correção de parser | Entrada válida sempre parseia sem erro |
Testes de Mutação
Testes de mutação modificam seu código de produção (criam "mutantes") e verificam se seus testes detectam as mudanças. Se um mutante sobreviver (testes ainda passam), seus testes têm uma lacuna que a cobertura sozinha não consegue revelar.
Ferramentas
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingengineering-team/tdd-guide/SKILL.md
Popularity
- Repository stars
- 114
- Repository forks
- 45
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 21 Sep 2026, a month ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ricardonevesbraga/flowgrammers-skills/tdd-guide)