0
我想爲承諾拒絕案例做測試用例。使用摩卡測試承諾拒絕案例
這是我的代碼
1)文件:TemplateFinder.js
**I want to make test for this method on promise reject using *mocha* how can i achieve this?**
var findTemplate = function (template) {
return templateFinder.find(templateName)
.then((result) => {
return result.id;
});
};
2)query.js
var find = function (template) {
return knex.where({
internal_name: template,
})
.select('external_id')
.from('mailing_external_template')
.then(function (data) {
if (0 === data.length) {
return Promise.reject(RangeError('no result for id'));
} else {
return data[0].external_id;
}
});
};
3)app.js
Main file to run
function findTemplate()
{
templateFinder.findGoodTemplate('good-mail-template');
}
initiateProcess()
.then(function (fromResolve) {
return findTemplate();
})
.catch(function (e) {
});
我的嘗試:
it('should throw error if template not found', function() {
var findTemplateIdStub = sinon.stub(templateFinder, 'find');
var error = 'my expected error message returned by my function';
findTemplateIdStub.returns(Promise.reject(error));
return templateFinder.findTemplate(templateName)
.catch(function(err) {
assert.equal(err, error);
});
});
我的嘗試的問題是findTemplate沒有捕獲,所以我怎麼能從我的測試用例斷言變量,而不是原來的。 (Catch不在代碼中,但仍然是我的測試通行證。)請幫我做一下findTemplate拒絕案例的測試用例。