我有一个 Logger 中间件,显示要调度的动作和下一个状态 .
我正在为我的行动编写测试,在模拟商店中我正在调度操作 . 这些成功调度但是模拟存储状态没有被更新(如上述 Logger 所示) .
请注意我使用的是redux-mock-store .
//authActionTest.js
it('creates LOGIN_SUCCESS when successful login has occured', ()=>{
//array of expected actions to be dispatched.
const expectedActions = [
{ type: constants.LOGIN_REQUEST },
{ type: 'LOGIN_SUCCESS',
payload: {
uid: '123abc',
role: 'clinician'
}}
]
const store = mockStore({ auth : {} })
return store.dispatch(actions.loginUser('abc@123.com', 'password123'))
expect(store.getActions()).toEqual(expectedActions)
})
Logger 显示以下内容:
//logger
dispatching({ type: 'LOGIN_REQUEST })
next state { auth: {} }
dispatching({ type: 'LOGIN_SUCCESS',
payload: { uid: 123,
role: 'clinician'
})
next state { auth: {} }
1 回答
您正在尝试测试异步操作 .
所以为了回答这个问题,我们可以按照redux文档提出的建议 .
您可能需要对上面的代码进行一些修改才能使其正常工作 .
如果你正在使用axios,我建议使用
moxios
包而不是nock .