Habilidades javascript-testing-patterns
🧪

javascript-testing-patterns

Seguro

Domine Padrões de Testes em JavaScript

Também disponível em: wshobson

Escrever testes é difícil. Esta skill fornece padrões comprovados e exemplos para testes unitários, de integração e de ponta a ponta usando Jest, Vitest e Testing Library para que você possa construir suítes de testes confiáveis rapidamente.

Suporta: Claude Codex Code(CC)
📊 71 Adequado
1

Baixar o ZIP da skill

2

Upload no Claude

Vá em Configurações → Capacidades → Skills → Upload skill

3

Ative e comece a usar

Testar

A utilizar "javascript-testing-patterns". Escreva testes unitários para uma função add que recebe dois números e retorna sua soma

Resultado esperado:

  • ```typescript
  • import { describe, it, expect } from 'vitest';
  • import { add } from './calculator';
  •  
  • describe('add', () => {
  • it('should add two positive numbers', () => {
  • expect(add(2, 3)).toBe(5);
  • });
  •  
  • it('should add negative numbers', () => {
  • expect(add(-2, -3)).toBe(-5);
  • });
  •  
  • it('should handle zero', () => {
  • expect(add(0, 5)).toBe(5);
  • });
  • });
  • ```

A utilizar "javascript-testing-patterns". Crie um teste para um componente de formulário de usuário que valida email e envia dados

Resultado esperado:

  • ```typescript
  • import { render, screen, fireEvent } from '@testing-library/react';
  • import { describe, it, expect, vi } from 'vitest';
  • import { UserForm } from './UserForm';
  •  
  • describe('UserForm', () => {
  • it('should show validation error for invalid email', () => {
  • render(<UserForm onSubmit={vi.fn()} />);
  • fireEvent.change(screen.getByTestId('email-input'), {
  • target: { value: 'invalid-email' }
  • });
  • fireEvent.click(screen.getByRole('button', { name: 'Submit' }));
  • expect(screen.getByText('Invalid email')).toBeInTheDocument();
  • });
  •  
  • it('should call onSubmit with form data', () => {
  • const onSubmit = vi.fn();
  • render(<UserForm onSubmit={onSubmit} />);
  • fireEvent.change(screen.getByTestId('name-input'), {
  • target: { value: 'John Doe' }
  • });
  • fireEvent.change(screen.getByTestId('email-input'), {
  • target: { value: 'john@example.com' }
  • });
  • fireEvent.click(screen.getByRole('button', { name: 'Submit' }));
  • expect(onSubmit).toHaveBeenCalledWith({
  • name: 'John Doe',
  • email: 'john@example.com'
  • });
  • });
  • });
  • ```

Auditoria de Segurança

Seguro
v1 • 2/25/2026

All 145 static findings are false positives. The detected patterns exist only in code examples within markdown documentation files, not in executable code. The skill provides educational content about testing patterns with code samples demonstrating legitimate testing practices including mock setup, API testing, email service testing, and database integration testing. No executable code, no security risks.

2
Arquivos analisados
1,063
Linhas analisadas
0
achados
1
Total de auditorias
Nenhum problema de segurança encontrado
Auditado por: claude

Pontuação de qualidade

38
Arquitetura
100
Manutenibilidade
87
Conteúdo
31
Comunidade
100
Segurança
91
Conformidade com especificações

O Que Você Pode Construir

Configuração de Testes para Novo Projeto

Desenvolvedores iniciando um novo projeto JavaScript/TypeScript que precisam estabelecer infraestrutura de testes do zero com configuração adequada de framework, estrutura de diretórios e integração CI/CD.

Adicionar Testes a Codebase Existente

Equipes mantendo aplicativos legados ou sem testes que precisam introduzir testes gradualmente para funções, APIs e componentes existentes sem quebrar a funcionalidade existente.

Melhorar Cobertura de Testes

Desenvolvedores buscando aumentar a cobertura de código e melhorar a qualidade dos testes aprendendo padrões avançados de mocking, factories de fixtures e estratégias de testes de integração.

Tente Estes Prompts

Teste Unitário Básico
Escreva testes unitários para uma função que [descreva o que a função faz]. Inclua testes para casos de sucesso e tratamento de erros.
Teste de Componente com Testing Library
Crie testes React Testing Library para um componente que [descreva o comportamento do componente]. Teste interações do usuário, envio de formulários e estados de erro.
Teste de Integração de API
Escreva testes de integração para um endpoint de API REST que [descreva a funcionalidade do endpoint]. Inclua configuração de banco de dados, autenticação e limpeza usando supertest.
Mock de Dependências Externas
Crie testes para [serviço/classe] que façam mock de dependências externas incluindo [liste dependências]. Use injeção de dependência e padrões vi.mock.

Melhores Práticas

  • Siga o padrão Arrange-Act-Assert (AAA) em cada teste para estrutura clara e legibilidade
  • Teste comportamento e interações do usuário em vez de detalhes de implementação para tornar os testes resilientes à refatoração
  • Use hooks beforeEach e afterEach para configuração e limpeza para manter testes isolados e evitar poluição

Evitar

  • Testar detalhes de implementação como chamadas de função internas ou estado de componente em vez de comportamento observável
  • Escrever testes frágeis que quebram quando o código é refatorado mas o comportamento permanece inalterado
  • Criar configurações de teste excessivamente complexas com muitos mocks que tornam os testes difíceis de entender e manter

Perguntas Frequentes

Devo usar Jest ou Vitest?
Vitest é mais rápido e funciona melhor com projetos Vite. Jest é mais maduro e tem adoção mais ampla. Escolha Vitest se você usa Vite, caso contrário Jest é uma escolha segura.
Como testo código que usa APIs externas?
Faça mock das chamadas de API externas usando vi.mock() ou injeção de dependência. Isso mantém os testes rápidos, confiáveis e independentes de serviços externos.
Que cobertura de testes devo buscar?
Tenha como meta 80% de cobertura como objetivo geral. Foque em cobrir lógica de negócios crítica e caminhos de erro em vez de buscar 100% de cobertura.
Devo testar métodos privados?
Não. Teste apenas comportamento público. Se métodos privados precisarem de testes, considere refatorá-los em unidades separadas e testáveis.
Como lido com testes de banco de dados?
Use um banco de dados de teste separado e limpe os dados entre os testes usando beforeEach. Considere usar transações para rollback mais rápido em vez de truncar tabelas.
Qual é a diferença entre testes unitários e de integração?
Testes unitários isolam funções ou classes individuais. Testes de integração verificam que múltiplos componentes funcionam juntos, incluindo bancos de dados e APIs.

Detalhes do Desenvolvedor

Estrutura de arquivos