【问题标题】:How can i match a dynamically changing url in VCR如何匹配 VCR 中动态变化的 url
【发布时间】:2018-08-20 03:43:18
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    使用 VCR,您可以使用 match_requests_on 卡带选项或完全自定义的匹配器 - https://relishapp.com/vcr/vcr/v/3-0-3/docs/request-matching 匹配任何您希望的参数(方法、主机、路径等)的请求

    【讨论】:

      【解决方案2】:

      我通过忽略参数完成了这项工作。所以对你来说,这样的事情可能会起作用:

      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 请求匹配器中忽略了它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-08
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 2019-08-16
        • 1970-01-01
        相关资源
        最近更新 更多