如何在RSpec中模擬此調用?如何在不顯式調用Kernel的情況下模擬Kernel.open或open-uri?
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
,而不調用內核明確?