🌖 单元测试 Jest 的使用
- Jest 官网 (opens new window)。它是 Facebook 出品的一个测试框架,相对其他测试框架,它的一大特点就是内置了常用的测试工具,比如自带断言、测试覆盖率工具,实现了开箱即用。
# 安装使用 Jest
由于
typescript-library-starter已经内置jest。可以使用以下命令重新安装更新到新的版本:$ npm i jest1
# 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
