我正在使用 Jest 测试我的 React-Redux 应用程序,作为 API 调用的一部分,我正在导入一个 fetch 模块cross-fetch
。我想覆盖或替换它fetch-mock
。这是我的文件结构:
Action.js
import fetch from 'cross-fetch';
export const apiCall = () => {
return fetch('http://url');
Action.test.js
import fetchMock from 'fetch-mock';
import { apiCall } from './Action';
fetchMock.get('*', { hello: 'world' });
describe('actions', () => {
apiCall().then(
response => {
console.log(response)
})
})
显然此时我还没有设置测试。因为交叉提取的导入位置更接近它使用的提取实现的函数,导致它执行实际的调用而不是我的模拟。模拟获取的最佳方法是什么(除了删除import fetch from 'cross-fetch'
line)?
有没有办法根据调用的节点脚本是否进行条件导入test
or build
?或者将模拟的提取设置为优先?
fetch-mock
无意取代fetch()
调用您正在测试的代码,也不需要更改或删除任何导入。相反,它在测试期间提供模拟响应,以便使用fetch()
接收已知的、可靠的答复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)