2016-12-09 79 views
1

VCRが記録されたすべてのデータを消費したかどうかを確認するにはどうすればよいですか?テストされたプログラムが終了すると、APIにアクセスするか、まったく応答がない場合でも、VCRテストは正常に完了します(テストはエラーが発生していないことと最後に完了メッセージがないかチェックします)。状態を確認するにはさまざまな方法がありますが、テストされたアプリでカセットを正常に消費させると、私が考えることができる状態のアーティファクトよりも多くのことが示されます。VCRがカセットを完了したかどうかを確認する方法

@optionオプション:allow_unused_http_interactions [ブール]偽 に設定した場合、カセットが排出されている場合、すべての 以前に記録されたHTTPの相互作用が持っている前に、エラーが発生しますinsert_cassetteオプションのソースコードでこれを見つけた

答えて

0

使用された。 デフォルトはtrueです。 (エラーが$!と表示されている場合)、使用されていない対話は となり、元のエラーはほとんど無くなりません(ほぼ がもっと興味深い/重要です)。

と、このeject_cassetteオプションと対話:

@optionオプション:skip_no_unused_interactions_assertion [ブール] trueが与えられた場合、これは:allow_unused_http_interactions => false カセットオプションで有効になって「未使用のHTTP対話」 アサーションをスキップします。これは、テストで エラーが発生したが、テストフレームワークがすでにそれを処理していた場合に使用するためのものです。

だから、これは以下のように使用されます:

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 
関連する問題