【发布时间】:2017-07-16 03:01:15
【问题描述】:
我想为promise reject case做测试用例。
这是我的代码
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) 查询.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 拒绝案例制作测试案例。
【问题讨论】:
标签: javascript node.js promise mocha.js sinon