主要方案
- karma+mocha(主要介绍)
- jest
工具介绍
-
Karma
为前端自动化测试提供了跨浏览器能力 -
Mocha
是前端自动化测试框架,需要解决的是兼容不同风格的断言库,测试用例分组,同步异步测试架构,生命周期钩子等框架级的能力.
2.1 Mocha
- Mocha的基本语法
describe('现在要测XX功能',function(){
it('某个变量的值应该是数字',function(){
//写断言
})
});
describe('现在要测YY功能',function(){
it('某个数组长度应该不小于10',function(){
//写断言
})
});
})
- 异步测试语法
describe('现在要测XX功能',function(){
it('某个变量的值应该是数字',function(done){
//写断言
//手动调用done()表示异步结束,类似于Promise中的resolve
})
});
默认超时时间两秒,可通过命令行测试.
- 不同风格的断言库 支持
should.js
,expect.js
及node核心断言模块的assert
等. - 生命周期钩子 生命周期钩子一般用来建立和清理环境或全局变量.
describe('hooks', function() {
before(function() {
// runs before all tests in this block
});
after(function() {
// runs after all tests in this block
});
beforeEach(function() {
// runs before each test in this block
});
afterEach(function() {
// runs after each test in this block
});
// test cases
});
Chai
Chai
是一个断言库合集,提供许多判断断言是否成立的API.
具体例子参考链接
参考链接:
阮一峰的网络日志
大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试
李棠辉的Vue单元测试实战教程(Mocha/Karma + Vue-Test-Utils + Chai)
vue官方文档单元测试部分