Как сбросить 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/

Другие вопросы по тегам