用于 Braintree 的 Cucumber 录像机

VCR with Cucumber for Braintree

我正在使用 Cucumber 在 Rails 3.2 应用程序中测试 Braintree 集成(用于信用卡支付)。我正在尝试添加 VCR gem 来记录 Braintree 对规格的响应。

当我运行标记场景时,它通过并记录磁带。

问题: 当我重新运行 检查录制磁带的使用时,它失败并显示此消息 -
not in gzip format (ActionView::Template::Error) 在加载信用卡(托管)字段后立即执行步骤。

我试过使用卡带选项 :decode_compressed_response,但我不确定我是否理解正确。

任何正确方向的指示将不胜感激! :-)

这是我的录像机配置 (feature/config/vcr.rb):

require 'vcr'

VCR.configure do |c|
  c.cassette_library_dir = 'features/cassettes'
  c.hook_into :webmock
  c.default_cassette_options = {
    :decode_compressed_response => false
  }
  c.ignore_localhost = true
end

VCR.cucumber_tags do |t|
  t.tag  '@vcr', :use_scenario_name => true
end

将以下行添加到 c.default_cassette_options 可以消除 not in gzip format 错误。
:serialize_with => :compressed

这会在以 yaml 格式录制磁带后对其进行 gzip 压缩。

仍然让我感到困惑的一件事是,为什么 VCR 首先尝试解压缩 non-compressed 盒式磁带...还没有找到相应的设置。