我正在与 3rd 方脚本集成,但遇到了一个我不知道如何正确测试的场景。
第 3 方脚本使用一些方法将对象添加到窗口。create 方法的第二个参数是一个回调函数,它返回一个被拒绝或解决的Promise。
我需要能够使用拒绝或已解决状态来模拟第二个参数,以便我的单元测试可以覆盖 UI 是否使用错误或成功消息进行更新。
我怎样才能用正确的响应来模拟这个函数和回调函数?
thirdpartyform.create(options, (err, message) => {
return new Promise((resolve, reject) => {
if (err) {
reject(err.reason)
} else {
resolve(message)
}
})
.then(message => {
setState(message)
})
.catch((err) => {
setState(err)
})
})
下面是我目前在模拟不起作用的函数(针对 window 对象)的尝试。它没有正确设置拒绝值或解析值:(
create: jest.fn((options, callback) => callback(jest.fn().mockRejectedValue(FORM_TIMEOUT)))
任何帮助将不胜感激