javascript-testing-patterns
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.
Baixar o ZIP da skill
Upload no Claude
Vá em Configurações → Capacidades → Skills → Upload skill
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
SeguroAll 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.
Pontuação de qualidade
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
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.
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.
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.
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?
Como testo código que usa APIs externas?
Que cobertura de testes devo buscar?
Devo testar métodos privados?
Como lido com testes de banco de dados?
Qual é a diferença entre testes unitários e de integração?
Detalhes do Desenvolvedor
Autor
sickn33Licença
MIT
Repositório
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/javascript-testing-patternsReferência
main
Estrutura de arquivos