Тестирование создателя асинхронных действий, который извлекает некоторые данные из локального файла JSON - PullRequest
0 голосов
/ 22 декабря 2019

Я пытаюсь использовать jest для проверки создателя асинхронных действий, который извлекает некоторые данные. Я копался в документации на 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 голосов
/ 22 декабря 2019

Вам не понадобится redux-mock-store здесь. По сути, вы бы просто высмеяли axios (есть много информации о том, как это сделать) и в вашем тестовом вызове getCategories()(dispatch) с экземпляром jest.fn() в качестве отправки. Затем просто проверьте, как часто и с какими аргументами вызывается dispatch для различных сценариев, таких как «Axios успешно» или «Axios сбой».

Хорошая вещь в избыточности состоит в том, что она разъединяет вещи.

После этого вы можете протестировать ваши редукторы, вызывая их с рядом действий и expect что они возвращают.

Приятная вещь в избыточности состоит в том, что она отделяет эти слои друг от друга, нет необходимостипроверить все сразу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...