【发布时间】:2021-04-25 05:22:55
【问题描述】:
我有下面的代码,但我似乎无法让它工作。我究竟做错了什么?似乎包装承诺的异步导致了这个问题。无论我尝试什么,我总是会出错
export const doLogin = (email, password) => {
return async (dispatch, getState) => {
return new Promise((resolve, reject) => {
resolve(true)
})
};
};
and the test using jest and enzyme
expect(await doLogin('', '')).resolves.toEqual(true);
我得到的错误是
expect(received).resolves.toEqual()
Matcher error: received value must be a promise
Received has type: function
Received has value: [Function anonymous]
【问题讨论】:
-
doLogin对我来说没有多大意义。为什么是new Promise?您可以只做async () => true,但该功能似乎过于做作并且失去了上下文。另外,我认为resolves匹配器已经在等待承诺,而await明确表示您将true传递给expect,所以您需要expect(await doLogin()()).toBe(true)。
标签: reactjs unit-testing testing jestjs enzyme