我在教程中找到了这段代码
...
import configureMockStore from 'redux-mock-store';
const middleware = [thunk];
const mockStore = configureMockStore(middleware);
...
it('should create BEGIN_AJAX_CALL & LOAD_COURSES_SUCCESS', (done) => {
const expectedActions = [
{type: types.BEGIN_AJAX_CALL},
{type: types.LOAD_COURSES_SUCCESS, body: {
courses: [{id:'clean-code', title:'Clean Code'}]
}}
];
const store = mockStore({courses:[]}, expectedActions);
store
.dispatch(courseActions.loadCourses())
.then(() => {
const actions = store.getActions();
expect(actions[0].type).toEqual(types.BEGIN_AJAX_CALL);
expect(actions[1].type).toEqual(types.LOAD_COURSES_SUCCESS);
done();
});
});
整个一点expectedActions
都没有意义。
文档说,如果有第二个参数store
,它应该是一个函数;(没有解释说明该功能会做什么)。
起初我认为这是出于某种原因迫使一些行动进入商店,但很快console.log
告诉我事实并非如此。
因为只会dispatch
导致动作累积。
那么是文中的错误还是有什么值得进一步探索的智慧呢?