[ PROMPT_NODE_24922 ]
Resources 实施手册
[ SKILL_DOCUMENTATION ]
# JavaScript 测试模式实施手册
此文件包含技能所引用的详细模式、检查清单和代码示例。
# JavaScript 测试模式
为 JavaScript/TypeScript 应用实施稳健测试策略的综合指南,涵盖现代测试框架和最佳实践。
## 何时使用此技能
- 设置新项目的测试基础设施
- 为函数和类编写单元测试
- 创建 API 和服务的集成测试
- 实施用户流程的端到端测试
- Mock 外部依赖和 API
- 测试 React、Vue 或其他前端组件
- 实施测试驱动开发 (TDD)
- 在 CI/CD 流水线中设置持续测试
## 测试框架
### Jest - 全功能测试框架
**设置:**
typescript
// jest.config.ts
import type { Config } from 'jest';
const config: Config = {
preset: 'ts-jest',
testEnvironment: 'node',
roots: ['/src'],
testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!src/**/*.interface.ts',
],
coverageThreshold: {
global: {
branches: 80,
functions: 80,
lines: 80,
statements: 80,
},
},
setupFilesAfterEnv: ['/src/test/setup.ts'],
};
export default config;
### Vitest - 快速、原生支持 Vite 的测试框架
**设置:**
typescript
// vitest.config.ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
globals: true,
environment: 'node',
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
exclude: ['**/*.d.ts', '**/*.config.ts', '**/dist/**'],
},
setupFiles: ['./src/test/setup.ts'],
},
});
## 单元测试模式
### 模式 1:测试纯函数
typescript
// utils/calculator.ts
export function add(a: number, b: number): number {
return a + b;
}
export function divide(a: number, b: number): number {
if (b === 0) {
throw new Error('Division by zero');
}
return a / b;
}
// utils/calculator.test.ts
import { describe, it, expect } from 'vitest';
import { add, divide } from './calculator';
describe('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', () => {