Typescript 使用 Jest 进行单元测试

参考文章:快速开始·Jest

  1. 安装所需依赖:npm install --save-dev ts-node jest @types/jest ts-jest
    Jest 转换 TypeScript 代码需要ts-node
  2. 添加并配置 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'],
};
  1. 修改tsconfig.json文件:
typescript 复制代码
{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true,
    "types": ["jest"] // 添加这一行来指定 TypeScript 使用 Jest 的类型定义
  },
  "include": ["src/**/*", "test/**/*"] // 确保测试文件也被包含进来
}
  1. 编写测试
    源代码文件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);
  });
});
  1. 运行测试,在命令行执行命令:npx jest
相关推荐
魔云连洲4 小时前
React中的合成事件
前端·javascript·react.js
唐•苏凯6 小时前
ArcGIS Pro 遇到严重的应用程序错误而无法启动
开发语言·javascript·ecmascript
萌萌哒草头将军6 小时前
🚀🚀🚀 Oxc 恶意扩展警告;Rolldown 放弃 CJS 支持;Vite 发布两个漏洞补丁版本;Rslib v0.13 支持 ts-go
前端·javascript·vue.js
接着奏乐接着舞。6 小时前
3D地球可视化教程 - 第1篇:基础地球渲染系统
前端·javascript·vue.js·3d·three.js
薄雾晚晴6 小时前
Rspack 实战:用 image-minimizer-webpack-plugin 做图片压缩,优化打包体积
javascript·vue.js
kymjs张涛6 小时前
零一开源|前沿技术周刊 #15
前端·javascript·面试
古夕6 小时前
Vue3 + vue-query 的重复请求问题解决记录
前端·javascript·vue.js
不知名程序员第二部6 小时前
前端-业务-架构
前端·javascript·代码规范
Bug生产工厂6 小时前
React支付组件设计与封装:从基础组件到企业级解决方案
前端·react.js·typescript
华仔啊6 小时前
面试官:请解释一下 JS 的 this 指向。别慌,看完这篇让你对答如流!
前端·javascript