對於摩卡測試,我想斷言承諾最終會被拒絕。如何「反向」拒絕/履行承諾?
我不想使用chai-as-promised。我寧願使用Node的標準斷言模塊,也只是使用標準的ES6承諾。
我想出這個是最好的,但感覺稍微哈克:
it('foo should reject given bad data', function() {
var rejected;
return foo('bad data').catch(function (err) {
rejected = true;
}).then(function() {
assert(rejected);
});
});
任何人都可以提出一個更整潔,更富有表現力的方式來「反向」一個承諾,所以拒絕履行成爲副反之亦然?