“不能读取未定义的属性'数据'错误unit testing与axios和moxios redux行动

我正在尝试使用axios进行api调用的asynchronous还原操作。 我在moxios的帮助下testing它,并且它在几天前工作,但由于某种原因,今天当我创build另一个asynchronous操作时,它刚刚打破。

这是我的unit testing代码:

1 import configureMockStore from 'redux-mock-store'; 2 import thunk from 'redux-thunk'; 3 import moxios from 'moxios'; 4 5 import * as types from '../../../../client/auth/actions/action_types'; 6 import loginAuth from '../../../../client/auth/actions/login_action'; 7 8 require('dotenv').config(); 9 const expect = require('chai').expect; 10 11 const mockStore = configureMockStore([thunk]); 12 13 const user = { 14 email: 'john@loginActionTest.com', 15 password: 'secret', 16 }; 17 18 describe('authAction -> loginUser() ', () => { 19 beforeEach(() => { 20 moxios.install(); 21 }); 22 23 afterEach(() => { 24 moxios.uninstall(); 25 }); 26 27 it('should create AUTH_SUCCESS when finishes without error', () => { 28 const store = mockStore({}); 29 const token = 'authToken'; 30 const expectedActions = [ 31 { type: types.AUTH_REQUEST }, 32 { type: types.AUTH_SUCCESS, token }, 33 ]; 34 35 moxios.wait(() => { 36 const request = moxios.requests.mostRecent(); 37 request.respondWith({ 38 status: 200, 39 response: { success: true, token }, 40 }); 41 }); 42 43 return store.dispatch(loginAuth(user)).then(() => { 44 expect(store.getActions()).to.deep.equal(expectedActions); 45 }); 46 }); 

这是我的动作创造者:

  1 /* @flow */ 2 import axios from 'axios'; 3 import { 4 authRequest, 5 authSuccess, 6 authError, 7 } from './auth_actions'; 8 9 function loginAuth(user: { email: string, password: string }) { 10 return function (dispatch: any) { 11 dispatch(authRequest()); 12 13 return axios.post('/api/auth/login', { 14 email: user.email, 15 password: user.password, 16 }) 17 .then((response: any) => { 18 dispatch(authSuccess(response.data.token)); 19 }) 20 .catch((error: any) => { 21 dispatch(authError(error.response.data.messages)); 22 }); 23 }; 24 } 25 26 export default loginAuth; 

这是我的摩卡错误消息:

 authAction -> loginUser() should create AUTH_SUCCESS when finishes without error: TypeError: Cannot read property 'data' of undefined at client/auth/actions/login_action.js:21:26 

有人可以告诉我什么是错的,以及如何解决它? 谢谢

我find了解决这个问题的方法,但是我仍然不知道是什么原因造成的。 这个错误发生在这个错误发生的同时。 当我在redux动作创build器中注释掉browserHistory.push()行时,所有的testing都通过了。 希望这有助于任何人。