Node/Koa2[20]: jest
·
Yin灏
-
单元测试,及其意义
-
使用 jest
-
测试接口
单元测试
-
单个功能或接口,给定输入,得到输出。看输出是否符合要求。
-
需要手动编写用例代码,然后统一执行。
-
意义:能一次性执行所有单测,短时间内验证所有功能是否正常。
使用 jest
-
文件名必须是:*.test.js
-
常用断言
-
测试 http 接口
演示
- 安装 jest
npm i jest -D
- 添加 package.json 命令
"scripts": {
"test": "cross-env NODE_ENV=test jest --runInBand --forceExit --colors"
}
- 新建测试用例
test/demo.test.js
// test 文件夹和 src 平级
function sum(a, b) {
return a + b;
}
test("10 + 20 应该等于 30", () => {
const res = sum(10, 20);
expect(res).toBe(30);
// expect(res).not.toBe(40);
});
- 执行
npm run test
测试 API 接口
- 安装依赖
npm i supertest -D
test/server.js
const request = require("supertest");
const server = require("../src/app").callback();
module.exports = request(server);
test/json.test.js
const server = require("./server");
test("json 接口返回数据格式正确", async () => {
const res = await server.get("/json");
expect(res.body).toEqual({
title: "koa2 json",
});
});