灏天阁

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",
  });
});

- Book Lists -