问题描述
当我测试 promise 时,我的 Jest 测试一直显示 thrown: "I-failed"
。代码如下:
test('testing variable is Promise',() => {
const rejectPromise = Promise.reject('I-failed')
expect(rejectPromise instanceof Promise).toBe(true)
})
test('Promis Test',() => {
const promise = new Promise((resolve,reject) => window.setTimeout(() => resolve(123),300))
return promise.then(data => expect(data).toBe(123))
})
结果:
● Promis Test
thrown: "I-failed"
at _getError (node_modules/jest-circus/build/utils.js:442:18)
at Array.map (<anonymous>)
如果我将 toBe(123)
更改为 toBe(1234)
,Jest 会显示:
● Promis Test
thrown: "I-failed"
at _getError (node_modules/jest-circus/build/utils.js:442:18)
at Array.map (<anonymous>)
● Promis Test
expect(received).toBe(expected) // Object.is equality
Expected: 1234
Received: 123
似乎 Jest 不断显示一个不在我的代码中的额外错误。显然,错误是由上次测试未捕获的拒绝引起的。
当然我可以在 .catch()
后面添加一个 Promise.reject('I-failed')
来处理它,但我认为这不是我第一次测试的第一个目标:"Promise.reject()
是一个承诺“.
有没有办法让我的第一个测试仍然检测到“Promise.reject()
is a promise”,而第二个检测异步承诺流程的测试工作正常?
节点版本:11.15.0
玩笑版本:@testing-library/react:^11.1.0
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)