参考文章:快速开始·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