节点摩卡柴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()