II. Vue.js 中的单元测试工具
2.1 Jest
不同于"传统的"(其实也没出现几年)的 jasmine / Mocha / Chai 等前端测试框架;Jest
的使用更简单(也许就是这个单词的本意“俏皮话、玩笑话”的意思),并且提供了更高的集成度、更丰富的功能。
Jest 是一个由 Facebook 开发的测试运行器,相对其他测试框架,其特点就是就是内置了常用的测试工具,比如自带断言、测试覆盖率工具,实现了开箱即用。
此外, Jest 的测试用例是并行执行的,而且只执行发生改变的文件所对应的测试,提升了测试速度。
配置
Jest 号称自己是一个 “Zero configuration testing platform”,只需在 npm scripts
里面配置了test: jest
,即可运行npm test
,自动识别并测试符合其规则的( Vue.js 项目中一般是 __tests__
目录下的)用例文件。
实际使用中,适当的在 package.json 的 jest 字段或独立的 jest.config.js 里自定义配置一下,会得到更适合我们的测试场景。
四个基础单词
编写单元测试的语法通常非常简单;对于jest
来说,由于其内部使用了 Jasmine 2
来进行测试,故其用例语法与 Jasmine 相同。
实际上,只要先记这住四个单词,就足以应付大多数测试情况了:
describe
: 定义一个测试套件it
:定义一个测试用例expect
:断言的判断条件toEqual
:断言的比较结果
describe('test ...', function() {
it('should ...', function() {
expect(sth).toEqual(sth);
expect(sth.length).toEqual(1);
expect(sth > oth).toEqual(t