我正在尝试将单元测试用例添加到我的 redux 操作中。
我正在使用thunk
,promise-middleware
在我的行动中
我的一个动作是这样的
export function deleteCommand(id) {
return (dispatch) => {
dispatch({
type: 'DELETE_COMMAND',
payload: axios.post(`${Config.apiUrl}delete`, { _id: id })
})
}
}
对此的单元测试是
import configureMockStore from "redux-mock-store"
const middlewares = [thunk, promiseMiddleware()];
const mockStore = configureMockStore(middlewares)
it('creates DELETE_COMMAND_FULFILLED after deleting entry', (done) => {
nock('http://localhost:8081/')
.post('/delete',{
_id: 1
})
.reply(200, {})
const expectedActions = [{
type: 'DELETE_COMMAND_FULFILLED',
payload: {}
}]
const store = mockStore({
command: {
commands: []
}
})
store.dispatch(actions.deleteCommand({_id: 1}).then(function () {
expect(store.getActions())
.toEqual(expectedActions)
done();
})
})
我正在使用nock
,redux-mock-store
配置有thunk
,promise middleware
它给then of undefined
然后我改变了动作以返回承诺,然后我得到了unhandled promise reject
异常,我在动作调度调用中添加了一个 catch。现在我得到了,Network Error
因为 nock 没有嘲笑这个电话。也试过了,moxios
改成axios
,。似乎没有工作isomorphic-fetch
whatwg-fetch
我在哪里做错了?