Ответ 1
Fixture_file_upload в основном по-прежнему работает. Вам просто нужно убедиться, что путь устройств в вашем файле spec_helper.rb
раскоментирован и правильно установлен в путь spec/fixtures
и включить ActionDispath::TestProcess
:
RSpec.configure do |config|
config.include ActionDispatch::TestProcess
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"
...
И где вы указываете файл в своих тестах, не забудьте перед именем вашего файла указать "/", как в следующем примере:
describe "POST /subscriber_imports" do
let(:file) { { :file => fixture_file_upload('/files/data.csv', 'text/csv') } }
subject { post :create, :subscriber_import => file }
...
end
Абсолютный путь к файлу - это базовый путь, указанный в config.fixture_path
плюс относительный путь, указанный в вызове функции fixture_file_upload
. Итак, в этом примере file.csv
должен быть помещен в #{::Rails.root}/spec/fixtures/files/data.csv