문제 발생(jest 테스트 중)
- react-redux를 사용하는 중에 useSelector를 호출하는 영역에서 아래와 같은 에러가 발생했다.
could not find react-redux context value; please ensure the component is wrapped in a <Provider>
- 문제 해결을 위해서 찾아보니 useSelector의 mock이 필요할 것으로 판단이 되었다. 그리고 그 mock에는 store도 mock으로 연결되어야할 것 같았다.
문제 해결
import * as reactRedux from 'react-redux'
...
let useSelectorMock
let useDispatchMock
...
useSelectorMock = jest.spyOn(reactRedux, 'useSelector')
useDispatchMock = jest.spyOn(reactRedux, 'useDispatch')
...
useSelectorMock.mockReturnValue({ // myStore })
useDispatchMock.mockReturnValue(jest.fn())
...
- 위와 같이 설정하니 useSelector에 mock이 할당되었고, 해당 컴포넌트에서 사용하는 값을 returnValue로 설정해주니 귀신같이 해당 값을 찾아서 설정하는 것을 확인하였다.
reference