Mocha作为一种咖啡名,应该是广为人知的,中文翻译为摩卡。在这里,我们介绍的是一个JavaScript Test Framework,它用于对NodeJS、JavaScript进行单元测试。 Mocha是一个功能丰富的Javascript测试框架,能够运行在node和浏览器上,并且有丰富的报表支持。 项目主页:http://visionmedia.github.com/mocha/
安装
npm install -g mocha
一个简单的样例
$ mkdir test
$ cd ..
$ mocha test/test.js
1 2 3 4 5 6 7 8 9
var assert = 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)); }) }) })
1 2 3 4 5
$ mocha
.
✔ 1 test complete (1ms)
Assertions
在Java Unit Test中类似JUNIT,TestNG提供了不少的Assert函数。同样的,mocha也有很多选择。而这些并不属于mocha的一部分。
describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ [1,2,3].indexOf(5).should.equal(-1); [1,2,3].indexOf(0).should.equal(-1); }) }) })
测试异步代码
添加一个回调函数,通常称为done,给it。mocha就会知道应该等待操作完成。
1 2 3 4 5 6 7 8
describe('User', function(){ describe('#save()', function(){ it('should save without error', function(done){ var user = new User('Luna'); user.save(done); }) }) })