如何在VCR中匹配动态更改的网址

时间:2018-08-20 03:43:18

标签: ruby-on-rails-3 capybara minitest vcr

在我的Ruby on Rails应用程序中,有2个Localhost服务器正在运行。我正在为第一台服务器编写测试用例,因此我必须模拟第二台服务器。 为此,我使用VCR记录从第二台服务器获得的响应,并在第一台服务器上运行测试时播放录制的卡带。

我停留在第一台服务器向第二台服务器发出请求的部分( URL中的session_id每次都会更改),并且我希望每次发出请求时响应都相同

2 个答案:

答案 0 :(得分:1)

使用VCR,您可以使用match_requests_on盒式磁带选项或完全自定义的匹配器-https://relishapp.com/vcr/vcr/v/3-0-3/docs/request-matching

匹配任何所需参数(方法,主机,路径等)上的请求。

答案 1 :(得分:0)

我通过忽略参数来完成这项工作。因此,对于您来说,这样的事情可能会起作用:

VCR.use_cassette('name_of_your_cassette', match_requests_on: [:method, VCR.request_matchers.uri_without_params('session_id')]) do
  # here is your http query
end

在我的情况下,query正在更改,因此我在vcr请求匹配器中忽略了这一点。