跳到主要内容

Jest

Jest 是 Facebook 出品的一个测试框架,相对其他测试框架,最大的特点就是内置了常用的测试工具,比如 自带断言、测试覆盖率工具,UI测试工具,Mock能力 等,同时可以集成很多插件,与主流的软件库配合测试,比如:Typescript, React, Vue等, 真正实现了开箱即用

基本配置​

css
$ npm install --save-dev jest

创建一个 sum.js 文件

bash
function sum(a, b) {
return a + b;
}
module.exports = sum;

创建一个 sum.jest.js 文件

scss
const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});

在 package.json创建 Npm Scripts

json
{
"scripts": {
"test": "jest"
}
}

运行 npm run test 查看结果

bash
PASS ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

配置文件​

初始化生成 jest.config.js 文件,可以选择 node 和 jsdom 两种环境,暂时选择 node 环境,之后根据项目需求配置 jest.config.js 文件

shell
$ npx jest --init
## 执行jest测试
$ npx jest -c jest.config.js --colors

Typescript 单元接口测试​

Typescript 由于强类型检查,代码提示等优秀的特性,越来越成为主流开发语言。Jest 也很好的支持了 Typescript 语法。Typescript 在数据 SDK 接口模块开发中发挥了重要角色,考虑到之后的维护性和扩展性,对于 SDK 提供基础能力模块必须要用 Typescript 开发,同时配合 Jest 做单元测试和覆盖率测试,到达事半功倍的效果

搭建Typescript测试环境​

安装 typescript, @types/jest, jest, ts-jest 依赖

  • 配置jest.config.js

测试案例​

源码:

typescript
// sum.ts 两数之和测试案例
type sumType = (a: number, b: number) => number;
const sum: sumType = (a, b) => a + b;
export default sum;

测试代码:

ts
// test/sum.test.ts
import sum from '../code/sum';

test('1 + 2 = 3', () => {
let x: number = 1, y: number = 2;
let expected: number = 3;

let res: number = sum(x, y);

expect(res).toBe(expected);
});