Jestjs 在redux模拟存储getActions中获取空数组
在我的行动中提出请求。从需要从模拟redux存储返回值的api中提取。我让它在redux mock store dispatch action时启动该请求,但在store.getActions()时无法正确显示这些值 获取错误Jestjs 在redux模拟存储getActions中获取空数组,jestjs,redux-mock-store,fetch-mock,Jestjs,Redux Mock Store,Fetch Mock,在我的行动中提出请求。从需要从模拟redux存储返回值的api中提取。我让它在redux mock store dispatch action时启动该请求,但在store.getActions()时无法正确显示这些值 获取错误store.getActions()正在从模拟存储返回空状态 例如: simpleActions.js export const fetchTodos = () => { return async (dispatch) => { cons
store.getActions()
正在从模拟存储返回空状态
例如:
simpleActions.js
export const fetchTodos = () => {
return async (dispatch) => {
const response = await axios.get('https://myweb.com/example.json');
dispatch({ type: types.FETCH_TODOS_REQUEST , payload: response.data });
}
}
simpleAction.test.js
const middlewares = [thunk]
const mockStore = configureMockStore(middlewares)
describe('async actions', () => {
afterEach(() => {
fetchMock.restore()
})
it('creates FETCH_TODOS_SUCCESS when fetching todos has been done', () => {
fetchMock.getOnce('/todos', {
body: { todos: ['do something'] },
headers: { 'content-type': 'application/json' }
})
const expectedActions = [
{ type: types.FETCH_TODOS_REQUEST },
{ type: types.FETCH_TODOS_SUCCESS, body: { todos: ['do something'] } }
]
const store = mockStore({ todos: [] })
const dispatchStored = store.dispatch(actions.fetchTodos());
return dispatchStored.then(() => {
**const values = store.getActions();**
This values is returning the state empty array from the mock store.
expect(store.getActions()).toEqual(expectedActions)
})
})
})
如何调用或模拟需要从模拟存储返回值而不是状态空数组的异步/等待函数。如果有任何帮助,我们将不胜感激。您的
FETCH\u TODOS\u SUCCESS
action creator在哪里?@slideshowp2,我使用的FETCH\u TODOS\u请求目前正在恢复成功。因此,FETCH\u TODOS\u REQUEST
等于FETCH\u TODOS\u SUCCESS
。当我看到您的expectedActions
变量时,您的FETCH\u TODOS\u action创建者应该包含FETCH\u TODOS\u REQUEST
操作和FETCH\u TODOS\u SUCCESS
操作。您能否提供simpleActions.js
文件的完整代码?