安装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 层进行测试。