我應該如何測試,與摩卡和柴,我的承諾失敗?測試失敗的承諾與摩卡的內置承諾支持
我很困惑,因爲我最初以爲我應該使用「摩卡作爲許諾的」,但 包現在已經過時(我用摩卡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'部分。 – 2015-02-24 23:35:29
我會添加一個額外的斷言,以確保它沒有達到接受的情況。 '返回makePromise() 。然後(()=> {// 驗收的情況下,我們不應該到這裏 預期()失敗( '例外似乎沒有被拋出');} ( e)=> { //失敗的情況下,我們應該在這裏和消息shoudl匹配 expect(e.message).to.equal('fail'); }); ' – gmetzker 2017-01-09 22:14:22