我正在尝试使用笑话来测试可获取某些数据的异步操作创建者。我已经阅读了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
});
};
};
我该如何测试?有人可以指导我完成这些步骤吗?
答案 0 :(得分:0)
您在这里不需要redux-mock-store
。
本质上,您只需要模拟axios(有关如何执行此操作的大量信息),并在测试调用getCategories()(dispatch)
中使用jest.fn()
的实例进行调度。
然后只需测试在不同情况下(例如“ axios成功”或“ axios失败”)调用参数dispatch
的频率和频率。
关于redux的好处是它使事物解耦。
此后,您可以通过执行一系列操作并expect
调用它们来测试减速器。
关于redux的好处是它可以将这些层彼此分离,而无需一次测试所有内容。