тестирование attachment_fu в рельсах 3 - PullRequest
11 голосов
/ 19 октября 2010

Я пытаюсь написать спецификации для функции загрузки рабочего файла, используя attachment_fu. Однако пример кода, предоставленный автором для тестирования, требует от меня action_controller/test_process, чтобы у меня был доступ к ActionController::UploadedStringIO классу. Я использовал это раньше в rails 2.x, но для rails 3 не удается найти файл test_process.

Как мне продолжить тестирование функции загрузки файлов в rails 3?

Ответы [ 3 ]

23 голосов
/ 04 мая 2011

Я смог прекрасно использовать fixture_file_upload с Rails3 и rspec.

Я просто добавил include ActionDispatch::TestProcess в spec_helper.rb, а затем передал что-то вроде следующего в качестве файловых данных:

fixture_file_upload(Rails.root.join("spec/support/test.png"), 'image/png')

РЕДАКТИРОВАТЬ: что-то, что я обновил, изменило поведение этого, чтобы всегда включать путь к приборам, поэтому я переключился на это вместо fixture_file_upload:

Rack::Test::UploadedFile.new(Rails.root.join("spec/support/test.png"), 'image/png')
4 голосов
/ 26 октября 2010

Сейчас я работаю над тестированием загрузки файлов в rails 3, хотя я не знаю, насколько полезным будет мой ответ. Можно ли поменять тест? Лично я использую подход огурца / капибары. DSL Капибары определяет

attach_file('Image', '/path/to/image.jpg')

Лично это кажется лучшим способом проверки, чем взаимодействие с объектом StringIO ... не стесняйтесь возражать.

3 голосов
/ 12 апреля 2011

Это было несколько сложно найти для Rails 3

Вы все еще можете использовать функцию fixture_file_upload, но вы должны добавить:

include ActionDispatch::TestProcess

Вваш тестовый пример.

Это не сработало с Rspec.Мне просто нужно было взять сам файл и опубликовать файл напрямую.

...