tdd-workflows-tdd-red
Faz seu agente criar testes que falham para definir o comportamento esperado e casos especiais. Isso é feito na fase 'vermelha' do TDD.
O que ela faz
Esta ferramenta cria testes que falham para que você possa definir como um programa deve funcionar e quais situações inesperadas ele precisa lidar. Ela ajuda a garantir que o código futuro atenda às expectativas.
Quando usar
- ✓Ao iniciar o desenvolvimento de uma nova funcionalidade.
- ✓Quando você precisa de testes que mostrem o comportamento esperado.
- ✓Para cobrir casos especiais antes de escrever o código.
Exemplo do que pedir para a IA
“Crie testes que falham para a função de login que verifica o email e a senha.”
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
Mensagem pronta para colar
Como funciona
A ferramenta gera código de teste que, quando executado, não funciona porque o código real ainda não foi escrito. Isso força você a escrever o código para fazer os testes passarem.
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 tdd-workflows-tdd-redOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/tdd-workflows-tdd-red/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Escreva testes abrangentes que falham, seguindo os princípios da fase vermelha do TDD.
[Pensamento estendido: Gera testes que falham e que definem corretamente o comportamento esperado usando o agente test-automator.]
Use esta habilidade quando
- Iniciar a fase vermelha do TDD para um novo comportamento
- Precisar de testes que falham e que capturem o comportamento esperado
- Quiser cobertura de casos extremos antes da implementação
Não use esta habilidade quando
- Estiver na fase verde ou de refatoração
- Precisar apenas de benchmarks de desempenho
- Os testes precisarem ser executados em sistemas de produção
Instruções
- Identifique comportamentos, restrições e casos extremos.
- Gere testes que falham e que definem os resultados esperados.
- Garanta que as falhas se devam à ausência de comportamento, e não a erros de configuração.
- Documente como executar os testes e verificar as falhas.
Segurança
- Mantenha os dados de teste isolados e evite ambientes de produção.
- Evite dependências externas instáveis na fase vermelha.
Papel
Gere testes que falham usando a ferramenta Task com subagent_type="unit-testing::test-automator".
Modelo de Prompt
"Gere testes abrangentes que FALHAM para: $ARGUMENTS
Requisitos Principais
Estrutura de Teste
- Configuração apropriada para o framework (Jest/pytest/JUnit/Go/RSpec)
- Padrão Arrange-Act-Assert (Organizar-Agir-Afirmar)
- Convenção de nomenclatura should_X_when_Y (deve_X_quando_Y)
- Fixtures isoladas sem interdependências
Cobertura de Comportamento
- Cenários de caminho feliz
- Casos extremos (vazios, nulos, valores de limite)
- Tratamento de erros e exceções
- Acesso concorrente (se aplicável)
Verificação de Falha
- Os testes DEVEM falhar quando executados
- Falhas pelos MOTIVOS CERTOS (não erros de sintaxe/importação)
- Mensagens de erro diagnósticas significativas
- Sem falhas em cascata
Categorias de Teste
- Unitário: Comportamento de componente isolado
- Integração: Interação de componentes
- Contrato: Contratos de API/interface
- Propriedade: Invariantes matemáticas
Padrões de Framework
JavaScript/TypeScript (Jest/Vitest)
- Simule dependências com
vi.fn()oujest.fn() - Use
@testing-librarypara componentes React - Testes de propriedade com
fast-check
Python (pytest)
- Fixtures com escopos apropriados
- Parametrize para múltiplos casos de teste
- Hypothesis para testes baseados em propriedade
Go
- Testes orientados por tabela com subtestes
t.Parallel()para execução paralela- Use
testify/assertpara asserções mais limpas
Ruby (RSpec)
letpara carregamento preguiçoso,let!para carregamento ansioso- Contextos para diferentes cenários
- Exemplos compartilhados para comportamento comum
Checklist de Qualidade
- Nomes de teste legíveis que documentam a intenção
- Um comportamento por teste
- Sem vazamento de implementação
- Dados de teste significativos (não 'foo'/'bar')
- Testes servem como documentação viva
Antí-Padrões a Evitar
- Testes passando imediatamente
- Testar implementação versus comportamento
- Código de configuração complexo
- Múltiplas responsabilidades por teste
- Testes frágeis atrelados a especificidades
Categorias de Casos Extremos
- Nulo/Vazio: undefined, null, string/array/objeto vazio
- Limites: valores mínimo/máximo, elemento único, limites de capacidade
- Casos Especiais: Unicode, espaços em branco, caracteres especiais
- Estado: Transições inválidas, modificações concorrentes
- Erros: Falhas de rede, timeouts, permissões
Requisitos de Saída
- Arquivos de teste completos com importações
- Documentação do propósito do teste
- Comandos para executar e verificar falhas
- Métricas: contagem de testes, áreas de cobertura
- Próximos passos para a fase verde"
Validação
Após a geração:
- Execute os testes - confirme que eles falham
- Verifique mensagens de falha úteis
- Verifique a independência dos testes
- Garanta cobertura abrangente
Exemplo (Mínimo)
// auth.service.test.ts
describe('AuthService', () => {
let authService: AuthService;
let mockUserRepo: jest.Mocked<UserRepository>;
beforeEach(() => {
mockUserRepo = { findByEmail: jest.fn() } as any;
authService = new AuthService(mockUserRepo);
});
it('should_return_token_when_valid_credentials', async () => {
const user = { id: '1', email: 'test@example.com', passwordHash: 'hashed' };
mockUserRepo.findByEmail.mockResolvedValue(user);
const result = await authService.authenticate('test@example.com', 'pass');
expect(result.success).toBe(true);
expect(result.token).toBeDefined();
});
it('should_fail_when_user_not_found', async () => {
mockUserRepo.findByEmail.mockResolvedValue(null);
const result = await authService.authenticate('none@example.com', 'pass');
expect(result.success).toBe(false);
expect(result.error).toBe('INVALID_CREDENTIALS');
});
});
Requisitos de teste: $ARGUMENTS
Perguntas frequentes
Por que os testes devem falhar primeiro?
Isso garante que você está escrevendo código para resolver um problema específico e que o teste realmente verifica algo importante.
O que são 'casos de borda'?
São situações incomuns ou extremas, como entradas vazias, valores muito grandes ou caracteres especiais, que podem quebrar o programa se não forem tratados corretamente.
O que significa 'testes independentes'?
Cada teste deve funcionar sozinho, sem depender do resultado de outro teste. Isso torna mais fácil encontrar e corrigir problemas.
Detalhes
Descrição original do autor
Generate failing tests for the TDD red phase to define expected behavior and edge cases.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4322
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC