如何解决使用 sinon 测试 catch 块
export const createNudgeBankLinkingNotifications = functions.https.onRequest(async
(req,res) => {
try {
await sendNudgeBankLinkingNotifications(correlationId);
res.status(200).send({ success: true });
} catch (error) {
res.status(500).send({
error: 'Notification cannot be sent'
});
}
});
我正在尝试测试 catch 块,但它总是返回成功块。我想测试测试块的输出是否为 { error: 'Notification cannot be sent' } .. 我正在尝试存根我正在测试的函数内部调用的函数 sendNudgeBankLinkingNotifications,但我不知道如何执行此操作
我的测试功能:
it('should return internal error',async () => {
const sendNotification = sinon.stub(notifications,'sendNudgeBankLinkingNotifications')
sendNotification.throws(new Error('Fake Error'))
const req: any = {
headers: {
Authorization: `Bearer ${functions.config().processreceipt.key}`
}
}
const resstatus = sinon.stub().returnsThis()
const resSend = sinon.stub()
const res:any = {
status: resstatus,send: resSend,}
await createNudgeBankLinkingNotifications(req,res);
sinon.assert.calledOnce(res.status);
sinon.assert.calledWith(resSend,{ error: 'Notification cannot be sent'})
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。