Как сбросить fetch-mock для каждого теста?
У меня есть несколько тестов React с использованием Jest и fetch-mock
каждый из них делал некоторые операции get, так что я изначально делал:
beforeAll(){
fetchMock.get(`*`, JSON.stringify(CORRECTRESPONSE));
}
Однако в некоторых тестах мне нужно возвращать неверные данные в качестве ответа, что-то вроде:
test('Wrong get answer', ()=> {
fetchMock.get('*', JSON.stringify(WRONGRESPONSE), {overwriteRoutes: true});
}));
Итак, так как мне нужно сбросить ответ для следующих тестов (и так вернуть CORRECTRESPONSE
Я придумал это решение:
beforeEach(){
fetchMock.get(`*`, JSON.stringify(CORRECTRESPONSE));
}
afterEach(fetchMock.restore);
Есть ли в любом случае лучше сделать это?
1 ответ
Согласно документам, это следует сделать
beforeEach(() => {
fetch.resetMocks()
})
Я не понимаю, почему предыдущий ответ ( /questions/30401577/kak-sbrosit-fetch-mock-dlya-kazhdogo-testa/30401589#30401589) был задан как правильный. Очистка после испытаний afterEach(fetchMock.restore)
это очень хороший способ.
Это также то, что описано в документации по fetch-mock: http://www.wheresrhys.co.uk/fetch-mock/