在 Rspec 中测试时,我是否让 VCR 在 Javascript / Capybara / Selenium 中接听外部 API 电话?

When testing in Rspec do I get VCR to pick up an external API call in Javascript / Capybara / Selenium?

我正在使用 rspec 和 VCR 来测试 API 通话。所有 VCR 盒式磁带都在代码的服务器端正确录制。

但是我在浏览器中有一个 api 调用(使用 js: true)运行。 api 调用如下所示

xhttp.open("GET", "https://someapi.com/someaddress/123456789/an-action", true);

此 API 通话将转到实时网站,VCR 不会接听和录制。

我想知道如何让 VCR 重新记录并回放到 JS API 调用?所以它的行为与服务器相同。

我无法添加评论,您是否尝试调整这些选项:match_requests_on: %i[method headers]

https://relishapp.com/vcr/vcr/v/1-6-0/docs/cassettes/request-matching

您可以尝试断开互联网连接并检查它是否在本地工作。

VCR 无法接听从浏览器发出的呼叫 - 它只能访问从您的应用程序发出的呼叫。您需要使用可编程代理来执行类似的操作。看到类似 https://github.com/oesmith/puffing-billy

的内容