Estandariza la creación de tests unitarios, de integración y de componentes con Vitest.

Install

mkdir -p .claude/skills/testing-sammysnake-d && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14265" && unzip -o skill.zip -d .claude/skills/testing-sammysnake-d && rm skill.zip

Installs to .claude/skills/testing-sammysnake-d

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

测试规范与最佳实践。Use when writing unit tests, integration tests, or component tests. Triggers on: creating test files, using Vitest, Testing Library, mocking, test organization questions.
180 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Organize test files in a `__tests__` directory
  • Define unit tests using `*.test.ts` or `*.test.tsx`
  • Define integration tests using `*.spec.ts` or `*.spec.tsx`
  • Mock dependencies using `vi.mock` from Vitest
  • Run all tests or watch for changes

How it works

It provides guidelines for structuring test files, naming conventions, and using Vitest for writing unit and integration tests. It also specifies how to mock services and check test coverage.

Inputs & outputs

You give it
Source code files and test files
You get back
Test results and coverage reports

When to use testing

  • Escribir tests unitarios para funciones
  • Crear tests de componentes con React
  • Simular dependencias con vi.mock
  • Ejecutar suites de tests y ver cobertura

About this skill

Testing Guide

测试规范,涵盖 Vitest、Testing Library 和测试组织。

Quick Start

import { describe, it, expect } from 'vitest';

describe('ModuleName', () => {
  it('should behavior description', () => {
    expect(actual).toBe(expected);
  });
});

Test Location

All tests in __tests__/ directory, mirroring source structure:

__tests__/
├── lib/utils/
├── lib/services/
├── components/
└── hooks/

File Naming

  • Unit tests: *.test.ts / *.test.tsx
  • Integration tests: *.spec.ts / *.spec.tsx

Commands

pnpm test           # Run all tests
pnpm test:watch     # Watch mode
pnpm test:coverage  # Coverage report

Component Test

import { render, screen } from '@testing-library/react';
import { Button } from '@/components/ui/button';

describe('Button', () => {
  it('should render children', () => {
    render(<Button>Click</Button>);
    expect(screen.getByText('Click')).toBeInTheDocument();
  });
});

Mocking

import { vi } from 'vitest';

vi.mock('@/lib/services', () => ({
  UserService: {
    getUser: vi.fn().mockResolvedValue({ id: '1' }),
  },
}));

Coverage Requirements

  1. Normal path - Expected behavior
  2. Edge cases - Empty, null, boundary values
  3. Error handling - Exception scenarios

When not to use it

  • When the project does not use Vitest or Testing Library
  • When the project does not follow the `__tests__` directory structure

Limitations

  • It focuses on Vitest and Testing Library.
  • It requires tests to be located in a `__tests__` directory.
  • It specifies file naming conventions like `*.test.ts` and `*.spec.ts`.

How it compares

This skill provides specific conventions for test file location, naming, and mocking within a Vitest and Testing Library environment, rather than using generic testing approaches.

Compared to similar skills

testing side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
testing (this skill)07moReviewBeginner
ui-ux-expert-skill919moReviewAdvanced
react-best-practices223moNo flagsIntermediate
frontend-testing113moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry