発生する理由
rspec_helper.rb
の中で以下のようにfixture_path
を指定してテストケースで参照している場合にDEPRECATION WARNING
が発生します。
rspec_helper.rb
config.fixture_path = Rails.root.join('spec/fixtures')
spec/sample_spec.rb
Rack::Test::UploadedFile.new("#{fixture_path}/test.txt")
DEPRECATION WARNING
DEPRECATION WARNING: TestFixtures#fixture_path is deprecated and will be removed in Rails 7.2. Use #fixture_paths instead. If multiple fixture paths have been configured with #fixture_paths, then #fixture_path will just return the first path.
rails 7.2からTestFixtures#fixture_path
が廃止されるため代わりに#fixture_paths
を使用する必要があるとのことです。
対応
rspec-rails
bundleされているrailsのバージョンが7.1以上の場合はfixture_paths
がconfigに設定可能になる様なので以下のコミットが含まれたバージョンがリリースされたらrspec-rails
を更新します。
前述したテストファイルを以下の様に修正します。
rspec_helper.rb
- config.fixture_path = Rails.root.join('spec/fixtures')
+ config.fixture_paths = [
+ Rails.root.join('spec/fixtures')
+ ]
- Rack::Test::UploadedFile.new("#{fixture_path}/test.txt")
+ Rack::Test::UploadedFile.new("#{fixture_paths.first}/test.txt")