第二个论点是什么



我在教程中找到了此代码

...
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个文档中找到示例。

参数expectedActions用于测试。您可以使用一系列动作创建一个模拟存储,然后派遣第一个动作。此操作将导致其他操作通过Thunks/Api Middleware/等转发(调度/下一个)...测试将检查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);
    })

相关内容

  • 没有找到相关文章

最新更新