Javascript 如何从Jest手动模拟检查默认导出功能
以下用于Jest测试的Javascript 如何从Jest手动模拟检查默认导出功能,javascript,typescript,jestjs,fetch,Javascript,Typescript,Jestjs,Fetch,以下用于Jest测试的同构fetch手动模拟文件返回预期值: /\uuuuu mocks\uuuu/isomorphic-fetch.ts 从“/requestData”导入*作为请求; const Fetch=(url:string,options:any):Promise同一个实现中Jest spy和常规模拟函数的行为可能不同的原因是Jest spy可以重置为不可操作 这正是在这个笑话设置中发生的情况: ... "resetMocks": true, "rest
同构fetch
手动模拟文件返回预期值:
/\uuuuu mocks\uuuu/isomorphic-fetch.ts
从“/requestData”导入*作为请求;
const Fetch=(url:string,options:any):Promise同一个实现中Jest spy和常规模拟函数的行为可能不同的原因是Jest spy可以重置为不可操作
这正是在这个笑话设置中发生的情况:
...
"resetMocks": true,
"restoreMocks": true,
...
restoreMocks
选项通常是可取的,它通过将spied方法重置为原始实现来防止测试交叉污染
resetMocks
通常是不受欢迎的,实际上是不可用的,它将可重用间谍从\uuuuu mocks\uuuuu
重置为无操作实现
TL;DR:resetMocks
configuration选项和jest.resetAllMocks()
破坏可重用间谍的实现,通常应该避免。如果需要重置特定的spy,可以使用mockReset
方法根据具体情况进行重置。请使用spy实现更新问题,而不是使用/…
和Jest配置。这个问题应该是完全可以理解的,而不必导航到任何时候都不可用的外部资源。@EstusFlask我已经添加了Jest配置,并澄清了省略的代码与上面的代码片段相同。谢谢,在jest.config.js
中设置resetMocks:false
后,可以按预期检查模拟参数。