Я тестирую приложение React-Redux с помощью Jest и как часть этого в моих вызовах API, я импортирую модуль fetch cross-fetch
. Я хочу переопределить или заменить это на fetch-mock
. Вот моя файловая структура:
Action.js
import fetch from 'cross-fetch';
export const apiCall = () => {
return fetch('http://url');
Action.test.js
import fetchMock from 'fetch-mock';
import { apiCall } from './Action';
fetchMock.get('*', { hello: 'world' });
describe('actions', () => {
apiCall().then(
response => {
console.log(response)
})
})
Очевидно, что в этот момент я не настроил тест. Поскольку перекрестная выборка импортируется ближе к функции, она использует ее реализацию fetch, заставляя ее выполнять фактический вызов вместо моего макета. Каков наилучший способ получить выборку для издевательства (кроме удаления строки import fetch from 'cross-fetch'
)?
Есть ли способ сделать условный импорт в зависимости от того, называется ли node script test
или build
? Или задайте приоритетный выбор издевательства?