环境搭建
// 预安装 ts jest(依赖ts)
npm i -g jest typescript ts-jest
// 安装ts-jest 和 类型
npm i -D jest ts-jest @types/jest
// 初始化ts-jest配置 生成jest.config.js
ts-jest config:init
// 修改package.json
"scripts": {
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
},
// 指令运行
npm test 测试用例情况
npm run testc 覆盖率情况
// 可以安装VSCode插件 jest runner 点击Run可以快捷调试单文件
// tsconfig.json
"esModuleInterop": true,
jest使用
module.exports = {
"preset": "ts-jest",
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.ts$": "ts-jest"
},
"coverageDirectory": "../coverage",
"testEnvironment": "node"
};
# test
/coverage
示例
export function sum(a: number, b: number) {
if (a > 0) {
return a + b;
} else {
return 100;
}
}
import { sum } from './filter-func';
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
覆盖率表示测试的代码覆盖了测试的文件中的方法数,分支数(条件等),所有代码行是否运行等