RSpecでこの呼び出しをモックする方法は?
require 'open-uri'
class FileFoo < ActiveRecord::Base
def download image_url
open("tmp/#{file}", 'wb') do |file|
file << open(image_url).read
end
end
end
FileFoo.open をモックしようとしましたが、戻り値ではなくダウンロードしたファイルを使用しているため、これは機能しませんでした。
コードをfile << Kernel.open(image_url).read
に変更し、以下を使用しました。
Kernel.stub_chain(:open, :read).and_return(File.read image_fixture)
Kernel.open().read
これは正常に動作しますが、カーネルを明示的に呼び出さずにモックする方法はありますか?