第二个参数是什么?
What is the second argument for?
我在教程中找到这段代码
...
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
会导致动作累积。
那么到底是文中有误还是有什么智慧可以进一步探讨呢?
此功能已在版本 1 中删除,但您可以在版本 1 中找到示例 docs。
参数expectedActions
用于测试。您可以创建一个包含一系列操作的模拟商店,然后分派第一个操作。此操作将导致其他其他操作通过 thunks/api middleware/etc 转发(调度/下一个)...测试将检查 expectedActions
数组中的所有操作是否已作用于商店:
import configureStore from 'redux-mock-store';
const middlewares = []; // add your middlewares like `redux-thunk`
const mockStore = configureStore(middlewares);
// Test in mocha
it('should dispatch action', (done) => {
const getState = {}; // initial state of the store
const action = { type: 'ADD_TODO' };
const expectedActions = [action];
const store = mockStore(getState, expectedActions, done);
store.dispatch(action);
})
我在教程中找到这段代码
...
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
会导致动作累积。
那么到底是文中有误还是有什么智慧可以进一步探讨呢?
此功能已在版本 1 中删除,但您可以在版本 1 中找到示例 docs。
参数expectedActions
用于测试。您可以创建一个包含一系列操作的模拟商店,然后分派第一个操作。此操作将导致其他其他操作通过 thunks/api middleware/etc 转发(调度/下一个)...测试将检查 expectedActions
数组中的所有操作是否已作用于商店:
import configureStore from 'redux-mock-store';
const middlewares = []; // add your middlewares like `redux-thunk`
const mockStore = configureStore(middlewares);
// Test in mocha
it('should dispatch action', (done) => {
const getState = {}; // initial state of the store
const action = { type: 'ADD_TODO' };
const expectedActions = [action];
const store = mockStore(getState, expectedActions, done);
store.dispatch(action);
})