Мне очень нравится Fetch API, и я стараюсь как можно больше использовать его с узловыми компонентами.
То же самое, конечно, применимо и к моему любимому фреймворку тестирования: Jest; он отлично работает с React, но я настоятельно рекомендую использовать его и в других средах.
Супер простая настройка, библиотека утверждений, фреймворк для фиксации, тестирование снимков и покрытие кода; все в одной платформе.
Но этот пост посвящен конкретному варианту использования: как провести модульное тестирование с компонентами узла Jest, которые используют node-fetch
.
Есть много библиотек, которые помогут вам издеваться над fetch
, но мне больше всего нравится jest-fetch-mock
; у него очень хороший API, и он очень хорошо работает вместе с Jest, и из-за этого я хотел бы использовать его в контексте, отличном от браузера.
Итак, вот моя стандартная установка в 3 простых шага:
npm install --save-dev jest-fetch-mock
- добавьте или измените свой
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!' }));
Вы также можете найти другой пример здесь. Надеюсь, это поможет.