搭建TypeScript单元测试环境

我们在学习TypeScript的时候如果能够搭建一个单元测试的环境,那写些demo会很简单,下面我们使用jest来搭建一个单元测试环境

Jest 是一个由 Facebook 开发并开源的 JavaScript 测试框架,被广泛应用于前端和 Node.js 项目的单元测试。以下是关于 Jest 的一些关键信息:

  1. 简单易上手 :Jest 具有简洁的 API,新接触测试的开发者也能快速理解和使用。例如,编写一个简单的测试用例只需要使用 test 函数包裹断言语句:
  • 自动测试运行:Jest 会自动运行测试文件,并且可以实时监控文件变化,在代码发生更改时自动重新运行相关测试。
  • 内置断言库 :提供了丰富的断言函数,如 toBe(用于比较基本数据类型的相等性)、toEqual(用于比较对象和数组的内容)、toBeTruthy(检查值是否为真值)、toBeFalsy(检查值是否为假值)等,方便对各种情况进行验证。
  • 快照测试:允许开发者保存组件或数据结构的 "快照",并在后续测试中比较是否发生变化。这对于确保 UI 组件的输出一致性非常有用。

先新建一个空白项目,然后新建src目录,在src目录下新建index.ts

TypeScript 复制代码
export function add(a: number, b: number) {
  return a + b;
}

在src下新建tests目录,新建index.test.ts

TypeScript 复制代码
import { add } from "../index";

//写一个add的测试用例
test("testAdd", () => {
    expect(add(1,2)).toBe(3);
});

安装ts环境

bash 复制代码
yarn add typescript --dev

初始化 ts 环境,执行下面命令,自动生成 tsconfig.json 文件

bash 复制代码
npx tsc --init

在 tsconfig.json 中(ctrl F 搜索 types 配置项,解开注释,并配置)

bash 复制代码
"types": ["jest"],     

安装 jest 并引入 ts 类型文件

bash 复制代码
yarn add jest @types/jest --dev

安装 jest babel 依赖环境

bash 复制代码
yarn add --dev babel-jest @babel/core @babel/preset-env

安装 jest babel 下的 ts 环境,用来支持 ts

bash 复制代码
yarn add --dev @babel/preset-typescript

根目录下创建 babel.config.js,写入并导出配置:

bash 复制代码
module.exports = {
  presets: [
    ["@babel/preset-env", { targets: { node: "current" } }],
    "@babel/preset-typescript"
  ]
};

在 package.json 中配置 scripts 的 test 字段,package.json整体如下

javascript 复制代码
{
  "devDependencies": {
    "@babel/core": "^7.26.10",
    "@babel/preset-env": "^7.26.9",
    "@babel/preset-typescript": "^7.27.0",
    "@types/jest": "^29.5.14",
    "babel-jest": "^29.7.0",
    "jest": "^29.7.0",
    "typescript": "^5.8.3"
  },
  "scripts": {
    "test": "jest"
  }
}

总体目录结构如下

这样所有环境都配置完了,最后在终端中执行:

javascript 复制代码
yarn test

如果你使用了WebStorm,可以直接执行

相关推荐
灵感__idea4 小时前
Hello 算法:贪心的世界
前端·javascript·算法
killerbasd7 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
橘子编程8 小时前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript
叫我一声阿雷吧9 小时前
JS 入门通关手册(45):浏览器渲染原理与重绘重排(性能优化核心,面试必考
javascript·前端面试·前端性能优化·浏览器渲染·浏览器渲染原理,重排重绘·reflow·repaint
大家的林语冰9 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
数据知道9 小时前
claw-code 源码分析:从 TypeScript 心智到 Python/Rust——跨栈移植时类型、边界与错误模型怎么对齐?
python·ai·rust·typescript·claude code·claw code
jiayong239 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习
天若有情67310 小时前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串
yuki_uix11 小时前
重排、重绘与合成——浏览器渲染性能的底层逻辑
前端·javascript·面试
止观止11 小时前
拥抱 ESNext:从 TC39 提案到生产环境中的现代 JS
开发语言·javascript·ecmascript·esnext