如何为每个测试重置获取模拟



我有几个使用 Jest 和 fetch-mock 的 React 测试,每个测试都做一些 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);

还有比这更好的

办法吗?

我不明白为什么之前的答案(https://stackoverflow.com/a/49778196/689944(被设置为正确。afterEach(fetchMock.restore)测试后清理是一个非常好的方法。

这也是 fetch-mock 文档中描述的内容:http://www.wheresrhys.co.uk/fetch-mock/#api-lifecyclerestore_reset

根据文档,这应该可以做到

beforeEach(() => {
  fetch.resetMocks()
})

相关内容

  • 没有找到相关文章

最新更新