如何判断录像机是否完成录像带

时间:2016-12-09 01:25:05

标签: ruby vcr

如何判断录像机是否已消耗所有录制的数据?如果测试程序终止API访问或根本不执行,则VCR测试仍然正常完成(测试检查没有引发错误,最后是完成消息)。有多种方法可以检查状态,但让测试的应用程序成功使用盒式磁带表明比我能想到的任何状态工件要多得多。

1 个答案:

答案 0 :(得分:0)

insert_cassette选项的源代码中找到了这个:

@option options:allow_unused_http_interactions [Boolean]如果设置为 如果卡带被弹出,则会出现错误 之前记录的HTTP交互已被使用。 默认为true。请注意,当发生错误时 (如$!变量所示)未使用的交互将是 允许我们不要沉默原始错误(这几乎是 当然更有趣/更重要。)

并与此eject_cassette选项进行互动:

@option options:skip_no_unused_interactions_assertion [Boolean] 如果给出true,则会跳过"没有未使用的HTTP交互" 由:allow_unused_http_interactions => false启用的断言 盒式选项。这适用于您的测试时使用 错误,但您的测试框架已经处理过了。

所以这被用作:

it 'successfully accesses the proper APIs' do
  VCR.use_cassette('/some/path', allow_unused_http_interactions: false) do
    expect do
      expect do
        described_class.new(param1, param2).process
      end.to_not raise_exception
    end.to output(/Done!/).to_stdout
  end
end