我使用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);有没有更好的办法这样做呢?
发布于 2018-04-11 22:48:12
根据文档,这应该可以做到
beforeEach(() => {
fetch.resetMocks()
})发布于 2019-07-08 21:22:27
我不明白为什么之前的答案(https://stackoverflow.com/a/49778196/689944)被设置为正确。使用afterEach(fetchMock.restore)进行测试后清理是一个非常好的方法。
这也是fetch-mock文档中所描述的:http://www.wheresrhys.co.uk/fetch-mock/#api-lifecyclerestore_reset
https://stackoverflow.com/questions/49053476
复制相似问题