我正在尝试运行此jestJS单元测试,但确实得到了TypeError: Promise resolver undefined is not a function
。我究竟做错了什么?
it('_onSubmit() should throw error if data is missing', (done) => {
const createUserMutation = () => new Promise()
const wrapper = shallow(<CreateAccount createUserMutation={createUserMutation} />)
wrapper.update().find(Form).simulate('submit', {
preventDefault: () => {}
})
createUserMutation.resolve().then(() => {
expect(console.error).toHaveBeenCalled()
done()
})
})
new Promise()
正在尝试创建没有执行程序功能的诺言*。正确的用法是传入一个最多接受两个参数(resolve
和reject
)的函数,例如:
var p = new Promise((resolve, reject) => {
// ...code that does something, ultimately calls either resolve or reject
});
有关MDN的更多信息:
稍后,您似乎正在尝试调用resolve
Promise实例。您也不能这样做(除非您没有使用标准承诺)。您可以使用resolve
传递给执行程序的函数来解决承诺。(我试图为您修改您的代码,但是需要太多上下文信息。)
*我很惊讶地看到V8的错误消息说“ resolver function”,但是我已经证实了。规范称它为执行器,我以为“解析器函数”将是Promise
构造函数传递给它的第一个参数的函数...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句