如何在 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
,而不显式调用内核?