2011-01-06 2 views
2

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

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

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», что указывает на выявление на моей локальной машине

Спасибо заранее

ответ

2

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

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

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

Смежные вопросы