0

このコードはチュートリアルで見つけました

...
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が意味をなさない。

ドキュメントによると、 に 2 番目の引数storeある場合、それは関数である必要があります。(ただし、その機能が何をするかについての説明はありません)。

最初はなんらかの理由でストアに何らかのアクションを強制していると思っていましたが、console.logそうではないと簡単に教えてくれました。

dispatchアクションが蓄積されるだけだからです。

では、それはテキストの間違いですか、それともさらに調査するための知恵ですか?

4

1 に答える 1

0

この機能はバージョン 1 で削除されましたが、1 つ前のドキュメントで例を見つけることができます。

パラメータexpectedActionsはテストに使用されます。アクションの配列でモック ストアを作成し、最初のアクションをディスパッチできます。このアクションにより、他のアクションが thunks/api middleware/etc を介して転送 (dispatch / next) されます... テストでは、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);
    })
于 2016-12-07T05:55:33.717 に答える