测试异步操作创建者,该创建者从本地JSON文件中获取一些数据

时间:2019-12-21 23:04:21

标签: reactjs typescript testing redux jestjs

我正在尝试使用笑话来测试可获取某些数据的异步操作创建者。我已经阅读了redux-mock-store文档,但实际上我不知道该怎么做。这是动作:

import { Dispatch } from 'redux';

export interface Task {
  id: string;
  title: string;
  categoryTitle?: string;
  error?: null;
}

export interface Category {
  name: string,
  tasks: Task[]
}

export const getCategories = () => {
  return async (dispatch: Dispatch) => {
    const response = await axios.get<Category[]>(url);

    dispatch<GetCategoriesAction>({
      type: ActionTypes.getCategories,
      payload: response.data
    });
  };
};

我该如何测试?有人可以指导我完成这些步骤吗?

1 个答案:

答案 0 :(得分:0)

您在这里不需要redux-mock-store。 本质上,您只需要模拟axios(有关如何执行此操作的大量信息),并在测试调用getCategories()(dispatch)中使用jest.fn()的实例进行调度。 然后只需测试在不同情况下(例如“ axios成功”或“ axios失败”)调用参数dispatch的频率和频率。

关于redux的好处是它使事物解耦。

此后,您可以通过执行一系列操作并expect调用它们来测试减速器。

关于redux的好处是它可以将这些层彼此分离,而无需一次测试所有内容。