Если я прокомментирую строку return Promise.reject(err);
в моей функции findGood
, тестовый пример должен завершиться неудачно. Это означает, что, если я не вернусь от своей функции, блок catch
в тесте должен быть undefined
.Handle Promise case отменить Mocha
var findGood = function (name) {
return goodModel.findByName(name)
.then((result) => {
....
return result;
})
.catch((err) => {
return Promise.reject(err);
});
};
Вот тест
it('good not found', function() {
var goodModelStub = sinon.stub(goodModel, 'findByName');
var error = 'Good not found';
goodModelStub.returns(Promise.reject(error));
return goodFinder.findGood('Sony')
.catch(function (err) {
assert.equal(err, error);
});
});
'.catch ((err) => Promise.reject (err))' довольно бесполезный оператор, так как вы получите то же самое, если бы просто удалили его. – Frxstrem
@Frxstrem, что я должен делать? вы можете ответить, если знаете? –
вы должны назвать обещание, как реальное, а не напрямую, чтобы поймать http://stackoverflow.com/questions/26571328/how-do-i-properly-test-promises-with-mocha-and-chai –