mocha诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏览器和node环境都可以使用
安装node.js和npm后执行安装mocha命令:
install --global mocha
验证mocha环境是否配置成功
官网给出的代码示例:
varassert=require("assert");
describe('Array',function(){
describe('#indexOf()',function(){
it('should return -1 when the value is not present',function(){
assert.equal(-1,[1,2,3].indexOf(5));
assert.equal(-1,[1,2,3].indexOf(0));
})
})});
打开cmd执行命令:
mocha test.js
如上表示mocha的测试环境已经ok
Describe(moudlename,testDetails)由上述代码可以看出,describe是可以嵌套的,比如上述代码嵌套的两个describe就可以理解成测试人员希望测试Array模块下的#indexof()子模块。moudle_name是可以随便取的,关键是要让人读明白就好
It(info,function)具体的测试语句会放在it的回调函数里,一般来说info字符串写期望的正确输出的简要依据话文字说明。当该it block内的test failed的时候控制台就会把详细信息打印出来。一般是从最外层的describe的moudle_name开始输出,最后输出info,表示该期望的info内容没有被满足,一个it对应一个实际的test case
Assert.equal(exp1,exp2)断言判断exp1结果是否等于exp2,这里采取的等于判断是==而并非===。即assert.equal(1,‘1’)认为是true。这只是nodejs里的assert.js的一种断言形式,之后会提到比较常用的should.js
如果exp1he exp2均为字符串,字符串比较出错时则控制台会用颜色把相异的部分标注出来
试验示例:
创建一个add.js
创建一个测试脚本test.js
varadd=require('./add.js');
varexpect=require('chai').expect;describe('加法函数的测试',function() {it('1加1等于2',function() {expect(add(1,1)).to.be.equal(2);});});
在cmd中执行命令:mocha test.js