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