create-react-app:为Jest测试使用代理

rhfm7lfc  于 2023-06-20  发布在  Jest
关注(0)|答案(1)|浏览(201)

我想在react Jest测试中使用实际的API。因为测试环境是JSDom,所以我不能进行跨域请求。在开发中,通过在package.json文件中指定代理可以很容易地解决这个问题,但是这并不适用于测试套件:npm test
我知道在创建一个新的JSDom示例时可以指定一个代理(参见文档):

const resourceLoader = new jsdom.ResourceLoader({
  proxy: "http://127.0.0.1:9001",
});

现在我找不到在我的应用程序中使用它的方法,该应用程序是使用create-react-app(CRA)创建的...所以我的问题是,在通过CRA应用程序运行Jest时,是否有某种方法可以指定代理?
谢谢!

ql3eal8s

ql3eal8s1#

我刚知道怎么做。有一个Jest配置选项用于设置JSDom示例的url:"testURL"。但是,当在package.json中指定它时,它将不起作用,例如:

jest: {
    "testURL": "http://localhost:4000"
}

真正起作用的是直接在NPM脚本中指定该选项。这将使NPM测试脚本看起来像:

"test": "react-scripts test --testURL=http://localhost:4000"

希望它能帮助有同样问题的人

相关问题