Как создать модульный тест для Paperclip :: Geometry? - PullRequest
2 голосов
/ 06 января 2011

Я пишу юнит-тест для загрузчика изображений, который использует скрепку. Это было ухабисто, и я медленно двигался, думая о препятствиях, пока не застрял в скрепке :: класс геометрии

Вот мой код ниже

 require 'test_helper'
 require File.join(File.dirname(__FILE__),"../../config/initializers","paperclip")    

 class PhotoTest < ActiveSupport::TestCase
 #include ActionController::TestProcess

 should_belong_to(:product)
 should_have_attached_file :data

 setup do
   #I had to do this way because the include right below the class line was not working 
   image = Photo.create(:data => ActionController::TestUploadedFile.new(ActionController::TestCase.fixture_path + "base-production-pack.png",'image/png')) 
   @geo = Paperclip::Geometry.from_file(image)
 end
end

скрепка :: геометрия дает мне ошибку:

test: Photo should have a paperclip attachment named #data. (PhotoTest):
Paperclip::NotIdentifiedByImageMagickError: #<Photo:0x1054aa6b8> is not recognized by the 'identify' command.
paperclip (2.3.6) lib/paperclip/geometry.rb:24:in `from_file'
/test/unit/photo_test.rb:13

У меня есть файл инициализатора "paperclip.rb", который указывает на идентификатор на моем локальном компьютере

Заранее спасибо

1 Ответ

2 голосов
/ 19 февраля 2011

Paperclip::Geometry.from_file ожидает путь, поэтому вы должны сделать:

Paperclip::Geometry.from_file(image.data.path)

Sidenote: Это хорошо, что вы тестируете, однако есть мало смысла тестировать метод геометрии скрепки, потому что набор тестов paperclip покрывает это.Ваши тесты должны охватывать то, что ожидается от вашего кода (например, подтверждение того, что миниатюры были изменены в соответствии с ожиданиями).

...