Я хочу протестировать функцию. В этой функции я использую Co с функцией генератора. Когда возникает ошибка, я ее ловлю и вызываю cb с ошибкой
В моем модульном тесте я делаю ложное утверждение, но мокко не сообщает об этом, просто истекает время ожидания:
//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();
});
});
Очевидно, я делаю что-то не так здесь?
Я знаю, что вы можете вернуть обещание мокко и пропустить обратный вызов в тесте, но моя функция «старт» не может вернуть обещание, это похоже на промежуточное программное обеспечение, поэтому оно должно работать с обратным вызовом.