使用promises测试redux中间件

时间:2017-07-24 11:06:45

标签: testing asynchronous promise redux mocha

我想为我的反应应用程序测试这个redux中间件代码:

export const dispatchActionFromPromise = next => (promise, name) => {
      promise.then(data => {
        next({
          type: `${name}_RECEIVED`,
          data
        });
      },
      error => {
        return next({
          type: `${name}_ERROR`,
          error
        });
      });
};

const dataService = store => next => action => {
  next(action);

  switch (action.type) {
    case GET_ORGANISATIONS:
      dispatchActionFromPromise(next)(ApiClient.getOrganisations(), GET_ORGANISATIONS);
      break;
    default:
      break;
  }

};

export default dataService;

我想测试承诺的dispatchActionFromPromise()ApiClient.getOrganisations()返回承诺)。

这里有什么值得测试的,如果有的话,最好的测试方法是什么?

我正在使用mocha和chai进行测试。

1 个答案:

答案 0 :(得分:0)

  

我想测试getOrganisations(),它返回一个promise

使用unitest,您只需测试一个功能。在您的情况下,您要测试的功能是getOrganisations()。那么为什么我们关心调用该函数的上下文呢?

如果你想写一个在reactjs和redux中返回promise的函数mocha test,你可以编写模拟函数来返回假结果。但是我推荐使用另一个有趣的方法是使用redux saga,因为它使测试更容易。阅读有关传奇here的办公室文件,了解更多信息。