Comment se moquer de cet appel dans RSpec?Comment se moquer de Kernel.open ou open-uri sans appeler le noyau explicitement?
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
Essayé se moquant FileFoo.open, mais cela ne fonctionne pas parce que je suis en utilisant le fichier téléchargé, pas la valeur de retour.
code modifié à file << Kernel.open(image_url).read
et utilisé les éléments suivants:
Kernel.stub_chain(:open, :read).and_return(File.read image_fixture)
Cela fonctionne très bien, mais est-il un moyen de se moquer Kernel.open().read
, sans appeler explicitement le noyau?