用途
Vitest 测试技能用于在 JavaScript/TypeScript 项目中生成 Vitest 测试。Vitest 具备 Vite 原生的速度,提供与 Jest 兼容的 API,并支持 ESM 与 HMR。当用户提到 "Vitest" 等关键词时,可使用该技能生成相应测试代码。
主要能力
- 基础测试:使用
describe、it、expect、vi、beforeEach组织测试,例如对 Calculator 的 add 与 divide 行为进行断言。 - Mocking:使用
vi替代jest,包括模块 Mock(vi.mock)、函数 Mock(vi.fn)、Spy(vi.spyOn)以及定时器控制(vi.useFakeTimers、vi.advanceTimersByTime、vi.runAllTimers、vi.useRealTimers)。 - 源码内测试(In-Source Testing):在源码文件中通过
import.meta.vitest编写与代码同位置的测试。 - 快照测试:支持
toMatchSnapshot与toMatchInlineSnapshot。 - React 组件测试:结合
@testing-library/react的render、screen进行组件渲染与断言。 - 反模式对照:例如应使用
vi.fn()而非jest.fn(),使用vi.mock()而非jest.mock(),并建议使用 TypeScript 严格模式。
使用方式
常用命令:
- 运行一次:
npx vitest run - 监听模式(默认):
npx vitest - UI:
npx vitest --ui - 覆盖率:
npx vitest --coverage - 指定文件:
npx vitest run src/math.test.ts - 过滤:
npx vitest run -t "adds"
配置示例(vitest.config.ts):
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
globals: true,
environment: 'jsdom',
coverage: { provider: 'v8', reporter: ['text', 'html'] },
include: ['src/**/*.{test,spec}.{js,ts,tsx}'],
includeSource: ['src/**/*.{js,ts}'],
},
});
适用场景
适用于需要为 JavaScript/TypeScript 项目编写测试的场景,包括单元测试、Mock 与 Spy、定时器测试、快照测试、React 组件测试、源码内测试,以及 API/集成测试与 CI/CD 集成等(参考 playbook 章节涵盖生产配置、Mocking 模式、React Testing Library、快照与内联快照、表驱动测试、源码内测试、API/集成测试、CI/CD 集成、调试速查与最佳实践清单)。
限制
资料中未提供关于收费、价格、平台支持范围或具体效果的信息,暂未提供。