Действительно ли файл testing_file_28.csv
существует по этому пути? AFAIK, Faker не генерирует файлы, а просто загружает тот, который у вас есть в вашем каталоге (источник: https://github.com/faker-ruby/faker/blob/master/doc/default/file.md)
Зачем вам нужно Faker
за что? Будет ли
Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/files/testing_file_#{rand(100)}.csv", 'application/csv')
также выполнять эту работу?
рассмотрите возможность использования Rails.root.join('foo', 'bar')
вместо Rails.root + "foo/bar"
, чтобы избежать проблем с разделителями путей (т. Е. /
против \
в зависимости от вашей ОС). Если вы go с Faker и передаете разделитель вручную, рассмотрите возможность использования File::Separator
из ядра Ruby, см .: https://ruby-doc.org/core-2.7.0/File.html
Поскольку это файл CSV, вы также можете написать метод, который просто генерирует случайные CSV, используя CSV.generate
. В конце концов, CSV - это просто строка с ,
и ;
/ \n
в качестве разделителей. Это вы можете просто передать как объект ввода-вывода в Rack::Test::UploadedFile.new
, то есть вам не нужны физические файлы, вздувающие вашу папку spe c.