analyzing-test-coverage
Creates and analyzes tests using Vitest and MSW patterns. Generates test builders, mocks repositories, and configures integration tests. Triggers on: write tests, test coverage, Vitest, MSW mock, vi.fn, vi.mock, unit test, integration test, test builder, mock setup, test failure.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Testing Strategy Analyst
Overview
Guide the creation of comprehensive tests following project patterns for unit tests, integration tests, and E2E tests using Vitest, MSW, and project-specific test helpers.
When to Use
- Writing new tests for entities or services
- Analyzing test coverage gaps
- Setting up mocks (MSW handlers, vi.fn)
- Organizing test files in the module structure
- Debugging test failures
Testing Stack
| Tool | Purpose |
|---|---|
| Vitest | Test runner and assertion library |
| MSW | Mock Service Worker for network mocking |
| vi | Vitest mock utilities |
| test-helpers/ | Project-specific test utilities |
Test Organization
src/
├── modules/
│ └── category/
│ ├── category-service.ts
│ ├── category-service.test.ts # Unit tests
│ ├── repository.ts
│ ├── repository.test.ts # Repository tests
│ └── category.integration.test.ts # Integration tests
├── core/
│ └── diff/
│ └── comparators/
│ ├── category-comparator.ts
│ └── category-comparator.test.ts
├── test-helpers/
│ ├── config-file-builder.ts
│ ├── graphql-mocks.ts
│ ├── config-fixtures.ts
│ └── cli-runner.ts
└── lib/
└── test-setup.ts # Global test setup
e2e/
└── ... # End-to-end tests
Quick Pattern Reference
Service Tests
See references/patterns.md for full examples. Key structure:
- Declare dependencies at suite level
- Reset mocks in
beforeEachwithvi.clearAllMocks() - Use describe blocks for method grouping
- Follow Arrange-Act-Assert pattern
Repository Tests with MSW
See references/patterns.md for MSW setup. Key steps:
- Define handlers with
graphql.query()/graphql.mutation() - Setup server with
beforeAll/afterAll - Override handlers for specific test cases with
server.use()
Test Data Builders
See references/test-builders.md for implementations. Pattern:
- Create builder class with fluent interface
- Validate with Zod schema in
build() - Provide factory functions for convenience
Mock Functions
See references/patterns.md for examples. Common patterns:
-
vi.fn()for simple mocks -
vi.mocked()for typed access -
vi.mock()for module mocking
Running Tests
pnpm test # All tests
pnpm test -- --filter=category-service # Specific file
pnpm test -- --grep="should create category" # Pattern match
pnpm test -- --watch # Watch mode
pnpm test -- --coverage # With coverage
See references/commands-reference.md for advanced options and coverage configuration.
Test Quality Checklist
For Every Test
- Follows Arrange-Act-Assert pattern
- Has descriptive test name
- Tests one thing per test
- Includes both positive and negative cases
- Uses typed mocks (not
any) - Cleans up after itself (beforeEach/afterEach)
For Test Suites
- Covers all public methods
- Covers error scenarios
- Covers edge cases
- Uses schema-validated test data
- Has integration tests for complex flows
Validation Checkpoints
| Phase | Validate | Command |
|---|---|---|
| Test written | File exists | Check *.test.ts created |
| Tests pass | All green | pnpm test <file> |
| Coverage adequate | Key paths covered | pnpm test --coverage |
| Mocks typed | No any in mocks |
npx tsc --noEmit |
Common Mistakes
| Mistake | Fix |
|---|---|
| Not resetting mocks | Add vi.clearAllMocks() in beforeEach |
| Testing implementation details | Test behavior (public API output), not internal state |
| Flaky async tests | Always await async operations before asserting |
Using any in mocks |
Use vi.mocked() for typed mock access |
| Missing error case tests | Add tests for rejection, validation failure, empty input |
References
Skill Reference Files
-
references/patterns.md- Detailed test patterns with full code examples -
references/test-builders.md- Builder pattern implementations -
references/commands-reference.md- Complete command reference
Project Resources
-
{baseDir}/src/test-helpers/- Test utilities -
{baseDir}/vitest.config.ts- Test configuration -
{baseDir}/docs/TESTING_PROTOCOLS.md- Testing protocols
External Documentation
- Vitest docs: https://vitest.dev
- MSW docs: https://mswjs.io
Related Skills
-
Complete entity workflow: See
adding-entity-typesfor E2E implementation including tests -
Zod test patterns: See
designing-zod-schemasfor schema validation tests -
GraphQL mocking: See
writing-graphql-operationsfor MSW handlers
Quick Reference Rule
For a condensed quick reference, see .claude/rules/testing-standards.md (automatically loaded when editing *.test.ts files).
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-03-03
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!