Тестируйте стили изображения скрепки с Rspec - PullRequest
4 голосов
/ 25 января 2012

У меня есть Баннер с прикрепленным файлом с использованием скрепки. Скрепка создаст «производные» для загруженного изображения, используя параметр «styles»:

class Banner < ActiveRecord::Base
  has_attached_file :image,
                    :styles => {:medium => "300x300>",
                                :thumb  => "100x100>"}
end

Я хочу протестировать это поколение Присоединенный_файл, желательно без проверки всего обращения к диску и т. Д. Я мог бы создать Banner, прикрепить файл и затем посмотреть в файловой системе, создан ли определенный файл с определенными размерами, но это противоречит моей идее тестирования сфокусированной части без тестирования всего стека.

Как я могу проверить, имеет ли прикрепленный файл :image определенные стили в Paperclip?

1 Ответ

1 голос
/ 03 января 2013

Все, что делает метод has_attached_file, это добавляет переданные определения в модель.Генерация выполняется с помощью скрепки и не нуждается в проверке.

Источник: https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip.rb#L174

Однако вы можете проверить, что определения были созданы правильно, используя метод attachment_definitions.Как то так:

it "has correct image style geometry" do
   Banner.attachment_definitions[:data][:styles][:medium][:geometry].should == "300x300>"
   Banner.attachment_definitions[:data][:styles][:thumb][:geometry].should == "100x100>"
end
...