gpt4 book ai didi

reactjs - CORS 错误 - 错误 : Cross origin http://localhost forbidden - in ReactJS/Jest test only

转载 作者:行者123 更新时间:2023-12-03 14:43:00 27 4
gpt4 key购买 nike

我遇到了一个问题,我向外部 API 发出的请求在执行过程中工作正常,但是在运行 Jest/Enzyme 测试时,它给了我一个 CORS 错误。有问题的函数是使用来自 API 的 JsonRpc 实现,并使用来自 node-fetch 的 fetch。不确定是否有我可以在某处应用的 CORS 设置?

我在 Jest/Enzyme 测试框架中尝试了许多异步等待的变体,但仍然遇到问题。

test("it should do something", done => {
const component = shallow(<CustomComponent />)
component.instance().customAsyncFunction( result => {
expect(result.length).toEqual(5)
done()
})
// return component.instance().customAsyncFunction().then(data => {
// expect(data.length).toEqual(5)
// })
})

我尝试了上述方法和其他一些方法(例如 setTimeout 并等待它)并得到 CORS 错误。

我得到的结果是:
 console.error
node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Cross origin http://localhost forbidden
at dispatchError (...\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:65:19)
at Request.client.on.res (...\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:679:38)
at Request.emit (events.js:198:13)
at Request.onRequestResponse (...\node_modules\request\request.js:1066:10)
at ClientRequest.emit (events.js:203:15)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:556:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
at TLSSocket.socketOnData (_http_client.js:442:20) undefined

有任何想法吗?

最佳答案

Jest 允许您设置安装脚本文件。此文件在其他所有内容之前都是必需的,它使您有机会修改运行测试的环境。通过这种方式,您可以在加载 axios 之前取消设置 XMLHttpRequest,并在提升导入后评估适配器类型。
链接:https://facebook.github.io/jest/docs/configuration.html#setuptestframeworkscriptfile-string

在 package.json 中

{
...,
"jest": {
...,
"setupTestFrameworkScriptFile": "./__tests__/setup.js",
...
},
...
}
__tests__/setup.js

global.XMLHttpRequest = undefined;

关于reactjs - CORS 错误 - 错误 : Cross origin http://localhost forbidden - in ReactJS/Jest test only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58785617/

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