0
비동기 함수가 전달 될 때 mapDispatchToProps 함수를 테스트하려고합니다. 나는 mapDispatchToProps를 테스트하는 방법에 대한 Dan Abramov의 제안을 읽었으며 내 코드를 테스트하려고합니다. 여기 test mapDispatchTo 비동기 작업
TypeError: Cannot read property 'then' of undefined
내 테스트입니다 내가 오류를 얻고있다
...
describe("mapDispatchToProps",() => {
const dispatchSpy = jest.fn();
const {signupUser} = mapDispatchToProps(dispatchSpy);
it("should dispatch signupActions.signupUser()",() => {
// mockAxios.onPost(endpoints.SIGNUP,{})
// .reply(200,'test_success');
// tried with and without mockAxios
signupUser({})
const spyLastCall = dispatchSpy.mock.calls[0][0];
expect(spyLastCall)
.toEqual(signupActions.signupUser({}));
})
})
내가 테스트 할 기능
...export const mapDispatchToProps = dispatch => {
return { signupUser: (user) => {
dispatch(signupActions.signupUser(user))
.then((response) => {
// do something on success
}, (error) => {
// do something on failure
})
}
}
이미 signupActions.signupUser를 테스트했으며 약속을 반환한다는 것을 알고 있습니다. 코드는 다음과 같습니다.
export function signupUser(user) {
return (dispatch) => {
return dispatch(rest.post(SIGNUP,user))
.then((response) => {
return Promise.resolve(response);
},(error) => {
return Promise.reject(error)
}
)
}}
내가 뭘 잘못하고 있니?
시가 : 나는 또한 시도 : 같은 결과 관심있는 사람들을위한
'mapToDispatch'에서 중괄호를 반환하거나 제거해야 할 수도 있습니다. 예 : return dispatch (signupActions.signupUser (user)) –
코드가 잘 실행되어 중괄호가 일. 그저 문제가있는 테스트뿐입니다. – user1795370