2016-05-30 3 views
1

Ich habe Probleme mit dem Herunterladen von Bildern.Wie getestet Download Bild mit Send_file-Methode mit RSpec?

def download_img 
    @image = Photo.find params[:id] unless params[:id].nil? 
    @c = Cat.find params[:cat_id] unless params[:cat_id].nil? 
    @foo = @image.foo unless @image.nil? 

    send_file(Paperclip.io_adapters.for(@image.file).path, type: "jpeg", :disposition => "attachment", :filename => @image.name) 
end 

Mein RSpec Test (Controller):

describe 'download_img' do 
before do 
    get :download_img, { id: image.id } 
end 

it 'retrieves image by id' do 
    img = Photo.find image.id 
    expect(img).not_to be_nil 
end 

it 'downloads image' do 
    page.response_headers["Content-Type"].should == "application/jpg" 
    page.response_headers["Content-Disposition"].should == "attachment; filename=\"image.name.jpg\"" 
end 
end 

Wenn ich rspec Test für beide Tests betreibe ich einen Fehler: „Keine solche Datei oder das Verzeichnis @ rb_sysopen -/home/public/system/fotos/files/000/000/001/foo/IMG123.JPG "

Vielen Dank.

Antwort

0

Ist das image Sie beziehen sich in Photo.find image.id kommen von Armaturen? Bitte überprüfen Sie, ob es eine entsprechende Datei gibt, auf die von Fixtures verwiesen wird. Ich nehme an, du musst den Pfad in Fixtures ändern und diese Datei auch erstellen, ein guter Platz dafür ist spec/fixtures.