Поиск загруженного файла с помощью Rspec 3

Я пытаюсь найти свой последний загруженный файл (используя Carrierwave) и запускаю для него метод have_dimensions с помощью Rspec.

На данный момент мой тест заканчивается сбоем, ошибка

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

Мой тест выглядит так (пробовал следовать примеру на их странице github, но загрузка файла не сработала, как ожидалось)

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) выходов

#<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>

И он создает следующие файлы

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

Как я могу получить доступ к этим файлам, чтобы запустить на них метод have_dimensions?

Спасибо


person Richlewis    schedule 10.10.2014    source источник


Ответы (1)


Итак, решил это, выяснив, что делает @uploader.store! (глупый я)

Мне нужно было сохранить мой файл

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