我的功能是sendMail我想对功能mailjet进行存根,它有一个方法链mailjet.post('send')。request ...
我想断言在邮件成功或失败时调用回调。
所以我如何存根这个方法链?
var sendMail = function (templateName, callback) {
// From template name find template id of mailjet
mailingExternalTemplateModel.findMailingTemplateId(templateName, function (err, result) {
const request = mailjet
.post("send")
.request(params)
request
.then((result) => {
if (typeof callback === 'function') {
callback(null, result.body);
}
})
.catch((err) => {
if (typeof callback === 'function') {
callback(err, null);
}
})
} else {
callback(err, null);
}
});};
我已经做好了
sinon.stub(mailjet, 'post').withArgs('send').returns(mailjetClient);
sinon.stub(mailjetClient, 'request').returns(Promise);
但我收到错误TypeError:尝试将未定义的属性请求包装为函数
最佳答案
我是每个Mailjet Wrappers(包括NodeJS)的开发人员。
我实际上正在更新它们中的每一个,并添加了一些功能,例如是否可以拨打电话。对于NodeJS版本,将于明天晚上在npm部署beta。
测试版发布后,我将使用您必须进行的修改(很少)来更新此答案。
如果您很好奇,您仍然可以查看我所做的修改:https://github.com/mailjet/mailjet-apiv3-nodejs/pull/21