rails / VCR gem,同样的URI不同的方法冲突

时间:2014-04-20 09:21:45

标签: ruby-on-rails-4 rspec vcr

我的VCR配置块是:

VCR.configure do |c|
  c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
  c.hook_into :webmock

  c.around_http_request(lambda { |req| req.uri =~ /google.com/ }) do |request|
    VCR.use_cassette(request.uri, :decode_compressed_response => true, &request)
  end
end

我的测试适用于post/get/put方法但是当我尝试DELETE时,VCR中存在冲突,因为它与之前的PUT请求匹配。这是因为该请求的URI与DELETE请求所需的URI相同。

如何更改use_cassette方法以使其结合使用URI +方法? (或任何其他建议也欢迎!)

谢谢!

1 个答案:

答案 0 :(得分:0)

解决了,这可能对其他人有所帮助,所以把它留在这里:

VCR.use_cassette([request.uri,request.method].join.to_s, :match_requests_on => [:method, :uri], :decode_compressed_response => true, &request)