# Jest 单元测试

  1. git地址 (opens new window)
  2. 中文文档 (opens new window)

Jest测试代码和逻辑代码是遵从约定优于配置(convention over configuration)。

jest执行的时候会用**/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x)正则来查找需要测试的代码文件。

  • 测试文件名要以spec结果

  • 测试文件后缀为js,jsx,ts,tsx

  • 测试文件需要放在tests/unit/目录下或者是/tests/目录下

只要满足这三个要求的测试文件,使用运行jest时就会自动执行。

# 入门案例

使用 npm install -g jest 安装jest

  1. 新建文件夹 jest-test----mkdir jest-test
  2. 切换到 jest-test内:-----cd jest-test
  3. 新建sum.js:------------touch sum.js,并粘贴下面的代码
function sum(a, b) {
  return a + b;
}
module.exports = sum;
1
2
3
4
  1. 新建sum.test.js --------touch sum.test.js,并粘贴下面的代码
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

1
2
3
4
5
  1. 将下面的配置部分添加到你的 package.json 里面:
{
  "scripts": {
    "test": "jest"
  }
}
1
2
3
4
5
  1. 运行npm run test ,会打印
PASS  ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)
1
2

# 测试vue3.0的reactivity

阅读vue3.0 reactivity源码,并用Jest 进行测试

3.0 中reactivity 文件定义到了 vue-next/packages/reactivity目录下

3.0 中reactivity 的测试文件定义到了 vue-next/packages/reactivity/__tests__目录下

  1. 切换到 vue-next 文件夹下
  2. jest reactive --coverage
  3. 切换到vue-next/coverage 的目前下,打开index.html 查看测试覆盖率