2016-01-06 2 views
1
const middlewares = [ thunk ]; 
const mockStore = configureStore(middlewares); 

const originals = { 
    Actions: {} 
}; 
const mocks = { 
    Actions: { 
     addPasswordResetRequest: spy(() =>{ 
      return [ 
       {type: REQUEST_ADD_PASSWORD_RESET_REQUEST}, 
       {type: REQUEST_ADD_PASSWORD_RESET_REQUEST_SUCCESS} 
      ]; 
     }) 
    } 
} 

//(have functions to mock actions) 

... 

it('should create an action to request a password reset', (done) => { 
    nock('http://localhost:8080/') 
    .post('/password-reset-requests') 
    .reply(200); 
    var email = "[email protected]"; 
    const expectedActions= [ 
     {type: REQUEST_ADD_PASSWORD_RESET_REQUEST}, 
     {type: REQUEST_ADD_PASSWORD_RESET_REQUEST_SUCCESS} 
    ]; 
    const store = mockStore({}, [ 
     {type: REQUEST_ADD_PASSWORD_RESET_REQUEST}, 
     {type: REQUEST_ADD_PASSWORD_RESET_REQUEST_SUCCESS} 
    ], done); 
    store.dispatch(Actions.addPasswordResetRequest(email)); 
    unMockActions(); 


}); 

ответ я получаю:Redux mockStore является только возвращение первого элемента списка

Error: Expected [ { type: 'REQUEST_ADD_PASSWORD_RESET_REQUEST' }, 
{type: 'REQUEST_ADD_PASSWORD_RESET_REQUEST_SUCCESS' } ] to equal 
{type: 'REQUEST_ADD_PASSWORD_RESET_REQUEST' } 

Когда я запускаю этот код, я получаю только первое действие возвращается, а не второй один. И это не список, это всего лишь одно действие. Мне нужно проверить последовательность действий, а не вызывать ли одно действие.

ответ

0

Я испытал это при попытке протестировать редуктор, в котором было более одного типа действия. С помощью Mocha вы можете тестировать только одно действие за раз. Я еще не тестировал никаких создателей «thunked», но я ожидал бы, что создатель макета будет проверять второе действие и должен быть захвачен в тесте для этого создателя действия.

Смежные вопросы