Как я должен тестировать, с моккой и чаем, что мое обещание потерпело неудачу?тестирование неудачных обещаний с поддержкой встроенных обещаний mocha
Я смущен, потому что я изначально думал, что я должен использовать «мокко, как обещанный», но пакета теперь осуждается (я использую мокко 2.1.0), с советом к просто использовать которое теперь встроено в мокко. см: https://github.com/domenic/mocha-as-promised
Другой пост рекомендует покончив с «сделал» аргумент его() обратного вызова - не уверен, что я понимаю, почему, так как я понимаю, что проходит в «сделано» параметр был путь сигнализировать что тест был протестирован асинхронно. How do I properly test promises with mocha and chai?
В любом случае, я попытался уменьшить проблему до приведенного ниже кода - пожалуйста, помогите мне изменить это, чтобы я мог проверить, что мое обещание действительно не срабатывает.
it.only("do something (negative test)", function (done) {
var Q = require('q');
function makePromise() {
var deferred = Q.defer();
deferred.reject(Error('fail'));
return deferred.promise;
};
makePromise()
.then(done, done);
});
Вы можете «вернуть» 'makePromise()' и удалить часть «done, done». –
Я бы добавил дополнительное утверждение, чтобы убедиться, что оно не попало в регистр приема. 'вернуть makePromise() .then (() => { // Приемка случай, мы не должны получить здесь ожидать() упускают ('исключение не по всей видимости, выброшены.');. }, (e) => { // Ошибка, мы должны получить здесь и сообщение shoudl match ожидать (e.message) .to.equal ('fail'); }); ' – gmetzker