2016-12-06 138 views
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整個位沒有意義發現這個代碼。

文檔說,如果有第二個參數給store,它應該是一個功能; (沒有解釋告訴那個函數會做什麼)。

起初我以爲它出於某種原因強迫某些行爲進入商店,但快速console.log告訴我,情況並非如此。

因爲只有dispatch會導致動作累積。

那麼,在文本中還是一些智慧中進一步探索是錯誤的?

+0

Rob ... re:標題編輯。當人們搜索「redux-mock-store second argument」時,Google是否會立即找到我的問題?沒有好的結果,這個問題將是第一個。 – dwilbank

回答

0

此功能在版本1中已刪除,但您可以在1 docs之前找到該示例。

參數expectedActions用於測試。您可以使用一系列操作創建一個模擬商店,然後發送第一個操作。這一行動將導致其他其他措施以轉發(派遣一個/下)通過的thunk/API中間件的/ 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); 
    }) 
+0

謝謝。我可以看到它被刪除的原因。混亂! – dwilbank

相關問題