mocha 自动化测试
2018-09-18 本文已影响4人
whiteMu
mocha是一个javascript的测试框架,需要在node环境或浏览器环境下运行,这里我只学习了node的环境下运行测试代码。
mocha是一个比较流行的测试框架,是用于运行测试的工具。mocha本身不具备断言库,所以必须引入断言库,这里选用的断言库是chai
一、关于mocha的安装
1.即使在package.json配置了mocha,也进行了npm install安装所有的依赖包,但是还是会报错:'mocha' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
解决方法:
npm install --save mocha
2.即使在项目中安装了局部mocha,但是运行mocha还是会报错:mocha : 无法将“mocha”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。
解决方法:全局安装mocha
npm install --global mocha
二、关于断言库chai的安装
1.命令行安装:npm install chai
三、编写测试脚本
例,
1.有个模块js为add.js
//add.js
function add(x,y){
return x+y;
}
module.exports = add;
2.为add.js模块编写测试文件,文件命名规范为测试模块文件名+.test,如add.js的测试脚本命名为add.test.js
//add.test.js
var add = require('./add.js'); //将待测试文件引入
var expect = require('chai').expect; //引入断言库,指定使用它的expect断言风格
describe("加法函数测试", function() { //测试套件
it("1加1应该等于2", function() { //测试用例
expect(add(1, 1)).to.be.equal(2); //断言
})
})
四、运行测试脚本
1.cd进入测试文件对应文件夹,输入命令 mocha add.test.js

运行结果:一共有1条通过测试,耗时6ms
五、mocha的4个钩子函数
mocha在describe中定义了4个钩子函数,分别是before(),after(),beforeEach(),afterEach()。
describe("mocha钩子函数",function(){
before(function(){
//本块代码会在所有测试用例执行之前执行
});
after(function(){
//本块代码会在所有测试用例执行之后执行
});
beforeEach(function(){
//本块代码会在每个测试用例执行之前执行
});
afterEach(function(){
//本块代码会在每个测试用例执行之后执行
});
})
六、总结
本文仅仅是描述如何搭建测试环境以及测试框架的简单用法,对于mocha的其他用法,还有chai断言库的语法等等需自行查阅相关文档,这里不再赘述。