参考文章:快速开始·Jest
- 安装所需依赖:
npm install --save-dev ts-node jest @types/jest ts-jest
Jest 转换 TypeScript 代码需要ts-node
- 添加并配置 Jest 配置文件:
jest.config.ts
typescript
// jest.config.ts
module.exports = {
// TypeScript 代码预处理
preset: 'ts-jest',
testEnvironment: 'node',
testMatch: ['**/__tests__/**/*.ts?(x)', '**/?(*.)+(spec|test).ts?(x)'],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
};
- 修改
tsconfig.json
文件:
typescript
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"strict": true,
"esModuleInterop": true,
"types": ["jest"] // 添加这一行来指定 TypeScript 使用 Jest 的类型定义
},
"include": ["src/**/*", "test/**/*"] // 确保测试文件也被包含进来
}
- 编写测试
源代码文件sum.ts
:
typescript
// sum.ts
export function sum(a: number, b: number): number {
return a + b;
}
测试文件sum.test.ts
typescript
import { sum } from './sum';
import {describe, test, expect} from "@jest/globals";
describe('sum function', () => {
it('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
it('adds negative numbers correctly', () => {
expect(sum(-1, -1)).toBe(-2);
});
});
- 运行测试,在命令行执行命令:
npx jest