如何使用VCR记录所有请求?

时间:2014-01-14 13:01:04

标签: ruby-on-rails

我有一个相当大的应用程序,在许多地方都有远程请求。

我知道如何添加VCR的唯一方法是在每个请求测试周围添加这种类型的块:

VCR.use_cassesse "whatever" do
  # request processing
end

但是当你收到20个这样的请求时 - 它可能会变得太杂乱。

有没有办法只编辑VCR配置文件,以便立即记录所有请求?

2 个答案:

答案 0 :(得分:0)

在您的测试套件中,您可以插入/弹出磁带,这将记录您测试中的所有请求( it 方法调用)。

根据我的经验,每个描述的录音带是合适的。

  before do
    VCR.insert_cassette 'whatever'
  end

  after do
    VCR.eject_cassette
  end

答案 1 :(得分:0)

您可以使用VCR的请求挂钩来执行此操作:

VCR.configure do |vcr|
  vcr.before_http_request do |request|
    cassette_name = cassette_name_for(request)
    VCR.insert_cassette(cassette_name) 
  end

  vcr.after_http_request do |request|
    VCR.eject_cassette
  end
end

这假设您已经编写了cassette_name_for方法,该方法根据提供的HTTP请求应用您的磁带命名方案。