节点js做方法链的testing存根

我的function是sendMail我想存根functionmailjet,它有一个方法链mailjet.post('发送')。请求…

我想断言callback被称为邮件成功或失败。

那么我如何存根这个方法链?

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。

实际上,我正在更新它们中的每一个,并增加了诸如拨打电话(或不拨打)的function。 对于NodeJS版本,testing版将在明天晚上在npm上部署。

一旦testing版可用,我将更新这个答案,并进行必要的修改(很less)。

如果你好奇,你仍然可以看看我所做的修改: https : //github.com/mailjet/mailjet-apiv3-nodejs/pull/21