🌖 单元测试 Jest 的使用
- Jest 官网 (opens new window)。它是 Facebook 出品的一个测试框架,相对其他测试框架,它的一大特点就是内置了常用的测试工具,比如自带断言、测试覆盖率工具,实现了开箱即用。
# 安装使用 Jest
由于
typescript-library-starter
已经内置jest
。可以使用以下命令重新安装更新到新的版本:$ npm i jest
1
# Jest 配置
点击查看
在 package.json
中的 jest
相关配置:
"jest": {
"transform": {
".(ts|tsx)": "ts-jest"
},
"testEnvironment": "node",
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"coveragePathIgnorePatterns": [
"/node_modules/",
"/test/"
],
"coverageThreshold": {
"global": {
"branches": 90,
"functions": 95,
"lines": 95,
"statements": 95
}
},
"collectCoverageFrom": [
"src/*.{js,ts}"
]
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
相关配置的含义:
transform
:转换器配置。这里表示的就是使用ts-jest
工具把.ts
和.tsx
文件内容转换成 JavaScript,因为使用 TypeScript 编写测试代码,而 Node.js 是不能直接支持 TypeScript 的,所以需要配置转换器。testEnvironment
:测试环境。表示它是一个类浏览器的测试环境,可以使用浏览器环境中的一些 API。testRegex
:测试文件的正则表达式。包含的文件格式。moduleFileExtensions
:模块文件扩展名,当去引入一个模块并没有指定扩展名的时候,它会依次尝试去添加这些扩展名去找你引入的模块文件。coverageThreshold
:测试覆盖率的阈值设定。当测试覆盖率达不到阈值的时候,测试会失败。collectCoverageFrom
:收集指定文件的测试覆盖率 (即使你没为这些文件编写测试),它的值为 glob patterns 类型。
额外配置:
"setupFilesAfterEnv": [
"<rootDir>/test/boot.ts"
]
1
2
3
2
3
setupFilesAfterEnv
:测试框架安装后立即执行的代码文件列表。表示每次跑具体测试代码之前会先运行<rootDir>/test/boot.ts
中的代码,<rootDir>
表示当前项目的根目录。
编辑 (opens new window)
📢 上次更新: 2022/09/02, 10:18:16