【问题标题】:Configure PollyJS to ignore some requests配置 PollyJS 以忽略某些请求
【发布时间】:2021-04-23 20:08:39
【问题描述】:

我正在使用 PollyJS 在我的测试中记录网络请求。当唯一的网络请求是我想要记录的请求时,它运行良好 - 例如到外部服务。

我现在正在尝试进行集成测试,其中我的笑话代码启动了在无处不在的 127.0.0.1:3000 上运行的本地服务器,并且该服务器调用外部服务。

所以我的测试执行GEThttp://127.0.0.1:3000/api/some-path 并且该路由调用http://example.com/some-path。我希望 PollyJS 忽略对127.0.0.1:3000 的请求,并为后者进行通常的拦截和记录。我该如何配置它来做到这一点?

我一直在阅读和尝试config docs 中的设置,但到目前为止还没有运气。

【问题讨论】:

  • 最近正在寻找像 Polly 这样的东西,但尽管它很受欢迎,但由于某种原因没有找到它,很高兴你提到了它。请指定您在测试中运行服务器的具体代码以及如何完成对远程 API 的请求。您在 3000 上运行它进行所有测试可能意味着服务器是在另一个进程中启动的,因此无法拦截在测试进程中在服务器内部进行的调用。
  • Jest 提供了一个 JEST_WORKER_ID 值,允许一个人调整端口,以便每个测试套件不会与另一个发生冲突。这允许您在唯一端口上的相同上下文/内存空间中为每个测试套件启动不同的服务器,并拦截对其的调用(如果需要)并仍然并行运行测试。我使用 node-fetch 来进行这些 API 调用。我这样做的方式并没有什么特别之处。

标签: node.js jestjs pollyjs


【解决方案1】:

原来我需要的是passthrough()

例如:

polly.server.get(`<route-pattern>`).passthrough();

Docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-25
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多