2013-09-12 7 views
3

У меня есть модель:FactoryGirl и PaperCip прикрепленного

FactoryGirl.define do 
    factory :model do 
    mini_image { fixture_file_upload(Rails.root.join('spec', 'photos', 'rails.png'), 'image/png') } 
    name "Test model" 
    end 
end 

Когда пробег грабли спецификации, я получил эту ошибку:

NoMethodError: 
    undefined method `fixture_file_upload' 

Я уже добавить к моему spec_helper этот

config.include ActionDispatch::TestProcess 

Единственный способ, с помощью которого моя фабрика работает, - добавить эту строку в начале моего файла models.rb, но это не очень чисто:

include ActionDispatch::TestProcess 

У кого-нибудь есть другое решение?

Благодаря

+0

Я не уверен, что здесь происходит с ошибкой, но с использованием 'Rack :: Test :: UploadedFile.new (...)', как альтернативный подход обсуждается в HTTP: // StackOverflow. com/questions/3966263/attachment-fu-testing-in-rails-3 –

ответ

10

Попробуйте добавить это в spec_helper.rb, вне RSpec.configure блока.

FactoryGirl::SyntaxRunner.class_eval do 
    include ActionDispatch::TestProcess 
end 
+1

Или test_helper.rb, если вы не используете RSpec. – Shadwell

+0

Я сначала подумал, что это решение для моей настройки (Rails 4.2.5, RSpec 3.1.0, FactoryGirl 4.4.0). Однако, как-то после выхода из Guard (который сидел в фоновом режиме) и запуска rspec в командной строке, он разбился в этих строках в файле 'spec_helper.rb'. Очень простым решением было просто включить 'include ActionDispatch :: TestProcess' в заводский файл, где я использовал' fixture_file_upload' (к счастью, только один завод). – bovender

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