Ответ 1
Хорошо, я понял это. Ключ CarrierWaveDirect:
https://github.com/dwilkie/carrierwave_direct#using-capybara
Мне нужно было добавить эту строку в свой spec_helper.rb:
include CarrierWaveDirect::Test::CapybaraHelpers
Затем мои тесты нуждались в этих маркерах CarrierWaveDirect:
attach_file_for_direct_upload("#{Rails.root}/spec/support/images/example.jpg")
upload_directly(ImageUploader.new, "Upload Image")
Итак, окончательный тест прохождения выглядит следующим образом:
it "creates a new work with a test image" do
client = FactoryGirl.create(:client)
work = FactoryGirl.build(:work)
visit works_path
attach_file_for_direct_upload("#{Rails.root}/spec/support/images/example.jpg")
upload_directly(ImageUploader.new, "Upload Image")
fill_in "Name", :with => work.name
select("2012", :from => "work_date_1i")
select("December", :from => "work_date_2i")
select("25", :from => "work_date_3i")
select(client.name, :from => "work_client_ids")
fill_in "Description", :with => work.description
fill_in "Service", :with => work.service
save_and_open_page
check "Featured"
click_button "Create Work"
page.should have_content("Work was successfully created.")
end
Мне также нужно было добавить это к моим инициализаторам /carrierwave.rb:
if Rails.env.test?
CarrierWave.configure do |config|
config.storage = :file
config.enable_processing = false
end
end
Вместо того, чтобы отмахиваться от ответа на туман или проверить загрузку на s3, я просто отключил загрузку на s3 в тестовой среде.