节点摩卡柴asynchronous – 一切都传递,即使它应该失败

我试图教自己使用一个testing框架来自动化testing,而不是手动完成。 经过一些试验和错误,我终于得到了unit testing开始传递…但现在,我的问题是一切都传递,不pipe是否应该。

目前我有以下代码:

describe('create {authName, authPW}', function() { it('no name', function() { init({ path: ':memory:', callback: function() { var arg; arg = {}; //arg['authName'] = 'Name'; arg['authPW'] = 'Pass'; arg['callback'] = function(r) { // r.should.equal('create error'); r.should.equal('foobar'); done(); }; create(arg); } }); }); }); 

正如你所猜测的那样… r不应该等于'foobar'

我在这里做错了什么?

使用摩卡创buildasynchronoustesting时,您需要让他知道何时done

 describe('an asynch piece of code', function() { var foo = new bar(); it('should call the callback with a result', function( done ) { foo.doAsynchStuff( function( result ) { result.should.be.ok; done(); }); }); }); 

如果done作为它的论据,然后摩卡将等待被调用的完成。 它有一个2秒的超时,如果超过testing失败。 你可以增加这个超时:

 it('should resolve in less than 10 seconds', function( done ) { this.timeout( 10000 ); foo.doAsynchStuff( function( result ) { result.should.be.ok; done(); }); } 

it('no name', function(done) {

done必须是传递给it()的函数的参数it()