gpt4 book ai didi

javascript - 替换测试中的特定模块

转载 作者:可可西里 更新时间:2023-11-01 02:43:01 24 4
gpt4 key购买 nike

我正在使用 Jest 测试我的 React-Redux 应用程序,作为我的 API 调用的一部分,我正在导入一个获取模块 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)
})
})

显然此时我还没有设置测试。因为 cross-fetch 的导入更接近它使用它的 fetch 实现的函数,导致它执行实际调用而不是我的模拟。获取模拟的最佳方法是什么(除了删除 import fetch from 'cross-fetch' 行)?

有没有办法根据调用的节点脚本是 test 还是 build 进行条件导入?或者将模拟提取设置为优先?

最佳答案

fetch-mock 并非旨在替换您正在测试的代码中的 fetch() 调用,您也不需要更改或删除任何导入。相反,它会在您的测试期间提供模拟响应,以便使用 fetch() 发出的请求收到已知的可靠响应。

关于javascript - 替换测试中的特定模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49062766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com