JS的单元测试Jest

JavaScript023

JS的单元测试Jest,第1张

jest非常易于使用,文档也很详细,这里主要说一下简单的应用步骤

安装jest。

修改package.json添加如下命令(–coverage表示打印覆盖率等信息)

项目根目录下建立test文件夹,里面建立和要测试的文件同路径的测试文件,命名为xxx.test.js

引入要添加单测的函数

编写单测

- 在expect中调用引入的函数,通过匹配器(有用于数字、对象、字符串等多种不同匹配器)判断输出是否符合预期

- 可mock一些考虑边界情况、异常输入等的测试用例

打印测试的结果

修改package.json文件,在pre-commit的钩子也执行,这样其它人修改这个项目提交也会默认走一次单测

也可以通过npm run test手动执行单测

官方推荐测试框架: Mocha ( Mocha中文网 )

官方推荐断言库: power-assert

Egg.js 中已经内置 Mocha 、 co-mocha 、 power-assert , nyc 等模块,只需要在 package.json 上配置好 scripts.test 即可。

运行测试:

指定文件路径,可以对某一个单元测试文件进行测试:

约定 test 目录为存放所有测试脚本的目录。

测试脚本文件统一按 ${filename}.test.js 命名,必须以 .test.js 作为文件后缀。

describe 和 it 的第一个字段都只是描述,每一个 it 是一个测试用例。

Mocha 使用 before/after/beforeEach/afterEach 来处理前置后置任务,基本能处理所有问题。 每个用例会按 before -> beforeEach -> it -> afterEach -> after 的顺序执行,而且可以定义多个。

也可以直接对 Service 层进行测试。