gpt4 book ai didi

node.js - Node js 邮件喷射方法链接 stub

转载 作者:搜寻专家 更新时间:2023-11-01 00:38:46 24 4
gpt4 key购买 nike

在这里,我想断言回调函数是否被调用。那么我怎样才能使用 sinon js 来做到这一点。请提出建议。

var send = function (templateId, callback) {

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);
}
};

我试过如下:

var mailjetClient = require('../../node_modules/node-mailjet/mailjet-client');

sinon.stub(mailjet, 'post').withArgs('send').returns(mailjetClient);
sinon.stub(mailjetClient, 'request').returns(Promise);

我收到以下错误:

TypeError: Attempted to wrap undefined property request as function

最佳答案

试试这个它会起作用,你必须指定 post 方法返回什么,然后返回并请求返回。

   var cb = sinon.spy();

var obj = {successId: 12121}; // Any success response

var then = sinon.stub().callsArgWith(0, obj).returns(
{
catch: sinon.stub()
}
);

var request = sinon.stub().returns(
{
then: then
}
);

sinon.stub(mailjet, "post", () => {
return {
request: request
};
});

mailSender.send(templateName, cb);
sinon.assert.calledOnce(cb);
mailjet.post.restore();

关于node.js - Node js 邮件喷射方法链接 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42136685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com