TS 单测工具!ts-jest 和 babel/jest

ts.png

什么是 Jest

JestFacebook 的一套开源的 JavaScript 测试框架, 它自动集成了断言、JSDom、覆盖率报告等开发者所需要的所有测试工具,是一款几乎零配置的测试框架。

TypeScript 的工具体系基本分为:Babel系非Babel系。测试工具也不例外,分为 ts-jestbabel-jest

ts-jest & babel-jest

安装依赖

  • ts-jest
    npm i jest ts-jest @types/jest -D
    复制代码
  • ts-babel
    babel 环境中

    npm i jest babel-jest @babel/core @babel/preset-env @types/jest -D
    复制代码

    插播一下:安装 babel/jest,可能会遇到这个报错

    The authenticity of host 'github.com (192.30.255.112)' can't be established
    复制代码

    这是少了密钥文件,需要 将密钥添加到 SSH 代理

配置脚本

// package.json
{
  ...
  "scripts": {
    "test": "jest"
  }
}
复制代码
  • ts-jest
    初始化 jest.config.js

    npx ts-jest config:init
    复制代码

编写测试用例

// src/math.ts
function add(a: number, b: number): number {
  return a + b;
}

function sub(a: number, b: number): number {
  return a - b;
}
module.exports = { add, sub };
复制代码
// test/math.test.ts
const math = require("../src/math");

test("add 1+1=2", () => {
  expect(math.add(1, 2)).toBe(3);
});

test("sub 1-2=-1", () => {
  expect(math.sub(1, 2)).toBe(-1);
});
复制代码

两者差异

ts-jest 在测试文件中,可以检查类型错误,而 babel/jest 不可以,需要 tsc 辅助(新开一个 terminal)

TypeScript 工程系列

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享