我想对一个函数进行单元测试。在该函数中,我将 Co 与生成器函数一起使用。当发生错误时,我会捕获它,并使用错误调用 cb
在我的单元测试中,我做了一个错误的断言,但 mocha 没有报告它,它只是超时:
//function to test
function start(data, cb) {
co(function * coStart() {
yield Promise.reject('err'); // yield error for sake of demo
}).then(function(result){
return cb(null, result);
}).catch(function (err) {
// we get here
return cb(err);
});
}
// mocha test
it('fails on incorrect data', function(done){
MyModel.start({'foo': 'bar'}, function(err, res){
assert.equal(err, 'err2'); //this fails but mocha just stops here and times out
done();
});
});
显然我在这里做错了什么?
我知道你可以向 mocha 返回一个承诺并在测试中省略完成回调,但是我的函数“开始”不能返回一个承诺,它就像中间件,所以它应该与回调一起工作