Мне очень нравится Fetch API, и я стараюсь как можно больше использовать его с узловыми компонентами.

То же самое, конечно, применимо и к моему любимому фреймворку тестирования: Jest; он отлично работает с React, но я настоятельно рекомендую использовать его и в других средах.

Супер простая настройка, библиотека утверждений, фреймворк для фиксации, тестирование снимков и покрытие кода; все в одной платформе.

Но этот пост посвящен конкретному варианту использования: как провести модульное тестирование с компонентами узла Jest, которые используют node-fetch.

Есть много библиотек, которые помогут вам издеваться над fetch, но мне больше всего нравится jest-fetch-mock; у него очень хороший API, и он очень хорошо работает вместе с Jest, и из-за этого я хотел бы использовать его в контексте, отличном от браузера.

Итак, вот моя стандартная установка в 3 простых шага:

  1. npm install --save-dev jest-fetch-mock
  2. добавьте или измените свой setupJest.js файл с помощью следующего кода:
const fetch = require('jest-fetch-mock');
jest.setMock('node-fetch', fetch);

3. импортируйте node-fetch в свой тестовый файл и смоделируйте его как хотите:

const fetch = require('node-fetch');
fetch.mockResponse(JSON.stringify({ message: 'YATTA!' }));

Вы также можете найти другой пример здесь. Надеюсь, это поможет.