私のプログラムは、Webからzipファイルをダウンロードして解析します。関連解析関連のコードは次のとおりです。RSpecモック/スタブで異なるパラメータ値を使用する方法は?
私のRSpecのテスト環境ではZip::File.open("real_file.zip") do |zip_file|
# do stuff
end
、私が代わりに本物の偽物/モックファイルを解析するために、このコードをスタブにしたいと思います。具体的には、パラメータ値 "real_file.zip"を "mock_file.zip"に置き換えたいと思います。
Iは、次のアプローチを試みた:
allow(Zip::File).to receive(:open).and_return(Zip::File.open("mock_file.zip"))
を...が、これは、ブロック(# do stuff
)内のコードの実行を防止します。私はモックファイルの内容をに戻したいのですが、その方法ではが返されますが、rahterにはさらに使用するためにzip_file
の値が割り当てられます。これはどのように達成できますか?ここで
{|&ブロック| block.call(Zip :: File.open( 'mock_file.zip'))} ' https://www.relishapp.com/rspec/rspec-mocks/v/3-2/docs/configuring-responses/ブロックインプリメンテーション#発呼者のブロック – mroach