AgentSkillsCN

vitest-test-creator

使用 Vitest 进行测试代码编写、重构与调试。支持单元测试(.unit.test.ts)以及 React 组件和 Hooks 测试(.browser.test.tsx)。适用于“编写测试”“添加测试用例”“重构测试”“依据规范修改此测试”等各类需求。当需要创建、编辑或优化 .test.ts/.test.tsx 文件时,可灵活运用。

SKILL.md
--- frontmatter
name: vitest-test-creator
description: Vitest を使用したテストコード作成・リファクタリング・デバッグ。ユニットテスト(.unit.test.ts)、Reactコンポーネント・Hooksテスト(.browser.test.tsx)に対応。「テストを書いて」「テストケースを追加して」「テストをリファクタリングして」「このテストをガイドラインに沿って修正して」などのリクエストで使用。.test.ts/.test.tsx ファイルの作成・編集・改善が必要な場合に活用。

Vitest Test Creator

🚀 クイックスタート

ユニットテスト(純粋な関数)

typescript
// src/utils/__tests__/sum.unit.test.ts
import { describe, it, expect } from 'vitest'
import { sum } from '../sum'

describe('sum', () => {
  it('2つの数を足す', () => {
    expect(sum(2, 3)).toBe(5)
  })
})

ブラウザテスト(Reactコンポーネント)

typescript
// src/components/__tests__/Button.browser.test.tsx
import { render, cleanup } from '@testing-library/react'
import { describe, it, expect, afterEach } from 'vitest'
import { Button } from '../Button'

describe('Button', () => {
  afterEach(() => cleanup())

  it('ボタンが表示される', () => {
    const { container } = render(<Button>Click</Button>)
    expect(container.querySelector('button')).toBeInTheDocument()
  })
})

テストタイプの詳細は file-layout.md を参照。


テスト実行コマンド

用途コマンド
特定ファイル実行pnpm test:run src/components/__tests__/Button.browser.test.tsx
パターンマッチpnpm test:run bookmark
全テスト実行pnpm test:run
カバレッジ付きpnpm test:coverage

詳細は workflow.md を参照。


よくあるトラブル(TOP 3)

❌ jest-dom マッチャーが見つからない

エラー: Property 'toBeInTheDocument' does not exist

解決:

  • テストファイルが .browser.test.tsx 拡張子か確認
  • vitest.setup.tsimport '@testing-library/jest-dom/vitest' があるか確認

screen.getByRole() で複数要素エラー

エラー: Found multiple elements with role "searchbox"

解決: container.querySelector() を使用するか、afterEach(() => cleanup()) を追加

❌ テストがタイムアウト

エラー: Timeout of XXXX ms

解決:

  • 非同期テストに await があるか確認
  • vi.useFakeTimers() を使用している場合は vi.runAllTimers() を追加

すべてのトラブルシューティング → troubleshooting.md


次のステップ

テスト作成・編集:

  • unit-testing.md - ユニットテストの基本構造、パターン、ベストプラクティス
  • browser-testing.md - ブラウザテストの基本構造、例、ベストプラクティス
  • file-layout.md - テストファイル配置・命名規則

テストデータ・モック:

  • test-data-factories.md - テストデータ生成(fishery、@faker-js/faker)
  • mocking.md - 関数モック、モジュールモック、Next.js モック

リファレンス:

  • jest-dom-matchers.md - jest-dom マッチャー完全リスト
  • workflow.md - テスト実行ワークフロー、開発フロー、トラブルシューティング手順
  • troubleshooting.md - エラー別トラブルシューティング完全ガイド