首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作调用正在使用fetch-mock返回“未定义”。

操作调用正在使用fetch-mock返回“未定义”。
EN

Stack Overflow用户
提问于 2018-06-04 22:36:44
回答 1查看 685关注 0票数 1

操作"type":未定义,是在尝试使用fetch-mock测试redux操作时不断返回的内容。对于如何解决这个问题,有什么建议吗?会不会是假的窃听器?

代码语言:javascript
复制
Expected value to equal:
[{"type": undefined}, {"result": {"hello": "world"}, "type": undefined}]
Received:
[{"type": "DASHBOARD_RESULT_LOADING"}, {"result": {"hello": "world"}, "type": "DASHBOARD_RESULT_READY"}]

dashboardActions.js

代码语言:javascript
复制
function resultReady(json) {
return {
type: DASHBOARD_RESULT_READY,
result: camelizeKeys(json)
 };
}

export function requestPredict(params) {
let url = `${process.env.API_URL}/predict/`;
const requestParams = {
  method: 'post',
  credentials: 'include'
};

return async (dispatch) => {
return fetch(url, requestParams)
  .then(response => {
    if (response.status === 200) {
      return response.json();
    } else {
      throw Error(response.statusText);
    }
  })
  .then(data => dispatch(resultReady(data)));
};
}

dashboardActions.test.js

代码语言:javascript
复制
const mockData = { 
"hello": "world"
}


describe('action creators', () => {

afterEach(() => {
fetchMock.reset()
})

it('should create DASHBOARD_RESULT_LOADING', () => {
 fetchMock.post('*', {"hello":"world"} );

const expectedActions = [
 { type: actions.DASHBOARD_RESULT_LOADING },
 { type: actions.DASHBOARD_RESULT_READY, result: mockData }
]

const store = mockStore({ result: {}})

return store.dispatch(actions.requestPredict())
 .then((data) => {
  expect(store.getActions()).toEqual(expectedActions)
 })
})
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 15:37:08

您正在接收"DASHBOARD_RESULT_LOADING""DASHBOARD_RESULT_READY"类型,这似乎是预期的行为。您期待的是actions.DASHBOARD_RESULT_LOADINGactions.DASHBOARD_RESULT_READY,两者似乎都不是用任何值定义的。

定义actions.DASHBOARD_RESULT_LOADINGactions.DASHBOARD_RESULT_READY

代码语言:javascript
复制
actions.DASHBOARD_RESULT_LOADING = 'DASHBOARD_RESULT_LOADING'
actions.DASHBOARD_RESULT_READY = 'DASHBOARD_RESULT_READY'

或者用您预期的类型替换它们:

代码语言:javascript
复制
const expectedActions = [
  {
    type: 'DASHBOARD_RESULT_LOADING'
  },
  {
    type: 'DASHBOARD_RESULT_READY',
    result: mockData
  }
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档