Menemukan file yang diunggah dengan Rspec 3

Saya mencoba mencari file yang terakhir saya unggah (menggunakan Carrierwave) dan menjalankan metode have_dimensions dengan Rspec.

Saat ini hasil pengujian saya gagal, kesalahannya adalah

 Failure/Error: expect(@uploader.large_animal_image).to have_dimensions(555, 365)
 Errno::ENOENT:
   No such file or directory @ rb_sysopen - 

Pengujian saya terlihat seperti ini (mencoba mengikuti contoh di halaman github mereka tetapi unggahan file tidak berfungsi seperti yang diharapkan)

require 'rails_helper'
require 'carrierwave/test/matchers'

describe AnimalImage do 
  include CarrierWave::Test::Matchers

  before(:each) do
   AnimalImageUploader.enable_processing = true
    @animal = FactoryGirl.create(:image)
    @uploader = AnimalImageUploader.new(@animal, :image)
    ap(@uploader)
    @uploader.store!
  end

  after(:each) do
   @uploader.remove!
   AnimalImageUploader.enable_processing = false
 end

 context 'Image Versions' do

  it 'should scale large_animal_image to 555 x 365 ' do
   expect(@uploader.large_animal_image).to have_dimensions(555, 365)
  end
 end    
end

ap(@uploader) keluaran

#<AnimalImageUploader:0x000000080ae738 @model=#<AnimalImage id: 50, animal_id: nil, image: "yp2.jpg", created_at: "2014-10-10 07:41:20", updated_at: "2014-10-10 07:41:20">, @mounted_as=:image>

Dan itu menciptakan file-file berikut

/support
  /animal_image
   /image
    /50
     yp2.jpg
     large_animal_image_yp2.jpg

Bagaimana saya bisa mengakses file-file itu untuk menjalankan metode have_dimensions di dalamnya?

Terima kasih


person Richlewis    schedule 10.10.2014    source sumber


Jawaban (1)


Oke, jadi selesaikan ini dengan mencari tahu apa yang dilakukan @uploader.store! (saya konyol)

Saya perlu menyimpan file saya

before(:each) do
 AnimalImageUploader.enable_processing = true
 file = File.open("#{Rails.root}/spec/fixtures/yp2.jpg")
 @animal = AnimalImage.create!(image: file)
 @uploader = AnimalImageUploader.new(@animal, :image)
 @uploader.store!(file)
end
person Richlewis    schedule 10.10.2014