我有一個db.js設置來完成我所有的數據庫調用。這是查詢數據庫的函數之一。我如何做出承諾拒絕測試?
db.getUserCount = function() {
return new Promise (function (resolve, reject) {
db.users.count().then(function (result) {
resolve (result);
}, function(e) {
reject (e);
});
});
};
我對JavaScript和測試很新穎。我用摩卡和柴來測試它是如何解決的:
describe('getUserCount', function() {
it('should be fulfilled when called', function() {
return db.getUserCount().should.be.fulfilled;
});
});
我該如何測試承諾的拒收部分。我是否必須使用像sinon這樣的東西,還是有一些簡單的方法來使諾言失敗?
這是一個奇怪的術語,理解,拒絕詞,但我假設你想測試例外或錯誤。 測試正在測試某些條件,這取決於錯誤條件或異常情況,修改您的摩卡測試。 – user2347763
避免['Promise' constructor antipattern](http://stackoverflow.com/q/23803743/1048572)(在'getUserCount'中)! – Bergi
我該如何去做。我應該不使用構造函數嗎?這是我知道如何作出承諾的唯一方法 – nasoj1100