Я хочу проверить мой JS-файл, в который включены некоторые методы выборки.Теперь я хочу посмеяться над ответом этих методов запроса и получить некоторые проблемы с ним.
Я импортировал все мои методы JS-файла, которые я хочу протестировать с rewire .
Для подделки запросов на выборку я использую fetch-mock.
Если я высмеиваю ответы, подобные этим, все работает нормально:
//test.js
fetchMock = require('fetch-mock');
fetchMock.mock('http://example.com', 200);
const res = await fetch('http://example.com');
assert(res.ok);
fetchMock.restore();
Но когда я отправляю запрос сметод моего файла JS это не работает.Например:
//file.js
function fetchExample() {
return fetch('http://example.com');
}
//test.js
fetchMock = require('fetch-mock');
app = require('rewire');
fetchExmaple = app.__get__('fetchExmaple');
fetchMock.mock('http://example.com', 200);
const res = await fetchExmaple('http://example.com');
assert(res.ok);
fetchMock.restore();
Кажется, что область действия fetch-mock есть только в моем тестовом файле, и все мои функции, которые я экспортирую с помощью rewire, выполняются в моем файле JS.
Iпопытался установить fetchMock как глобальную переменную в моем JS-файле и выполнить функцию fetchMock.mock () в моем тестовом файле.
//test.js
//fetchMock = require('fetch-mock');
app.__set__('fetchMock', require('fetch-mock');
app = require('rewire');
fetchExmaple = app.__get__('fetchExmaple');
fetchMock.mock('http://example.com', 200);
const res = await fetchExmaple('http://example.com');
assert(res.ok);
fetchMock.restore();
Но это также не работает.Я не знаю, как выполнить fetchMock.mock () в моем файле JS.Или есть другие решения?
Надеюсь, кто-нибудь сможет мне помочь.
Заранее спасибо.
С уважением.
Sony