首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jest、redux-mock-store和Moxios测试异步调用

使用Jest、redux-mock-store和Moxios测试异步调用
EN

Stack Overflow用户
提问于 2017-08-18 01:00:23
回答 1查看 574关注 0票数 2

我创建了一个简单的用例来测试我的操作,但是我的store.dispatch没有返回promise。有人能告诉我出了什么问题吗?

Action.js代码:

代码语言:javascript
复制
export const handleSubmit = inputData =>
(dispatch) => {
axios.post(`${API_URL}/process-input/`, { input: inputData })
  .then((resp) => {
    dispatch({
      type: 'UPDATE_OUTPUT',
      payload: resp.data,
    });
  })
  .catch((e) => {
    dispatch({
      type: 'UPDATE_OUTPUT',
      payload: e.message,
    });
  });

};

我的测试是:

代码语言:javascript
复制
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import moxios from 'moxios';
import * as actions from './../../../../src/modules/inputData/action';
import { API_URL } from './../../../../src/constants';

const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);

describe('InputData actions', () => {
 test('Test input value update', () => {
 moxios.install();
 moxios.stubRequest(`${API_URL}/process-input/`, { status: 200, response: 'A nice test result' });
 const store = mockStore();

 return store.dispatch(actions.handleSubmit('anyData'))
  .then(() => {
    expect(store.getActions()).toEqual([
      { type: 'UPDATE_OUTPUTT', payload: 'A nice test result' },
    ]);
  });

});});

返回的错误是:无法读取未定义的属性'then‘

EN

回答 1

Stack Overflow用户

发布于 2017-11-14 20:38:37

您的redux操作不是返回承诺。您应该返回axios.post函数。

代码语言:javascript
复制
export const handleSubmit = inputData =>
(dispatch) => {
return axios.post(`${API_URL}/process-input/`, { input: inputData })
  .then((resp) => {
    dispatch({
      type: 'UPDATE_OUTPUT',
      payload: resp.data,
    });
  })
  .catch((e) => {
    dispatch({
      type: 'UPDATE_OUTPUT',
      payload: e.message,
    });
  });
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45741093

复制
相关文章

相似问题

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