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

create-react-app: use a proxy for Jest tests

我想为我的 React Jest 测试使用实际的 API。因为测试环境是JSDom,所以不能跨域请求。在开发中,这很容易通过在 package.json 文件中指定代理来解决,但是这不适用于测试套件 运行 通过:npm test.

我知道可以在使用 (see docs):

创建新的 JSDom 实例时指定代理
const resourceLoader = new jsdom.ResourceLoader({
  proxy: "http://127.0.0.1:9001",
});

现在我找不到在我的应用程序中使用它的方法,它是使用 create-react-app (CRA) 创建的...所以我的问题是,当 运行通过 CRA 应用程序开玩笑?

谢谢!

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

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

有效的方法是直接在 NPM 脚本中指定选项。这将使 NPM 测试脚本看起来像:

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

希望对遇到同样问题的人有所帮助