1. 安装mocha:
npm install mocha –save-dev
2. 编写求和函数的脚本sum.js:
(这次的全部操作仍然在上一篇博客所创建的目录下进行。)
jiahuan@ubuntu:~/project/contract_workflow$ vi sum.js
sum.js的内容:
module.exports = function(...rest){
var sum = 0;
for(let i of rest){
sum += i;
}
return sum;
}
3. 编写针对sum.js的测试脚本testSum.js:
jiahuan@ubuntu:~/project/contract_workflow$ vi testSum.js
jiahuan@ubuntu:~/project/contract_workflow$ cat testSum.js
const assert = require('assert');
const sum = require('./sum.js')
assert.strictEqual( sum(), 0);
assert.strictEqual( sum(1), 1);
assert.strictEqual( sum(1,2), 3);
assert.strictEqual( sum(1,2,3), 6);
log("All assert passed.")
4.执行测试脚本:
jiahuan@ubuntu:~/project/contract_workflow$ node testSum.js
All assert passed.
5. 修改测试脚本,采用mocha方法:
我们发现,单独写一个 testSum.js 的缺点是没法自动运行测试,而且,如果第一个 assert报错,后面的测试也执行不了了。如果有很多测试需要运行,就必须把这些测试全部组织起来,然后统一执行,并且得到执行结果。这就是我们为什么要用 mocha 来编写并运行测试。
(一)修改测试脚本:
jiahuan@ubuntu:~/project/contract_workflow$ vi testSum.js
jiahuan@ubuntu:~/project/contract_workflow$ cat testSum.js
const assert = require('assert');
const sum = require('./sum.js')
describe('#sum.js',()=>{
describe('#sum(),()=>{
it('sum() should return 0',()=>{
assert.strictEqual(sum(),0);
});
it('sum(1) should return 1',()=>{
assert.strictEqual(sum(1),1);
});
it('sum(1,2) should return 3',()=>{
assert.strictEqual(sum(1,2),3);
});
it('sum(1,2,3) should return 6',()=>{
assert.strictEqual(sum(1,2,3),6);
});
}');
});
(二)使用mocha进行测试:
jiahuan@ubuntu:~/project/contract_workflow$ ./node_modules/mocha/bin/mocha testSum.js