Ruby-Version: 2.7.2
Schienenversion: 6.1.0
RSpec-Version: 3.10.1 (rspec-core) und 4.0.2 (rspec-rails)
Hallo! Ich versuche, meine App von 6.0.3.4 auf Rails 6.1 zu aktualisieren, und bei der Verwendung der fixture_file_upload
-Methode tritt ein Fehler auf. Wenn ich diese Methode aufrufe, wird die folgende Ausnahme ausgelöst:
NoMethodError:
undefined method `file_fixture_path' for RSpec::Rails::FixtureFileUploadSupport::RailsFixtureFileWrapper:Class
Did you mean? fixture_path
Es scheint, dass ActionPack
die Implementierung von fixture_file_upload
geändert hat und erwartet, dass es eine Methode file_fixture_path
in der Klasse RailsFixtureFileWrapper
gibt.
Ich erwarte, dass diese Methode die Datei hochlädt, ohne dass Ausnahmen ausgelöst werden.
Sie können meine Beispiel-App mit einem fehlgeschlagenen Test hier sehen: https://github.com/egiurleo/fixture-file-upload-test/blob/main/spec/fixture_file_upload_spec.rb
Für den Test habe ich eine pdf-Datei im Ordner spec/fixtures
. Ich versuche, die Methode fixture_file_upload
mit dem Namen dieser Datei aufzurufen, und der Test löst die zuvor beschriebene Ausnahme aus.
file_fixture_path
in diesem Kontext einstellt, daher wäre jede Anleitung willkommen.ActionPack
( lib/action_dispatch/testing/test_process.rb
).Danke für die Meldung. Wir arbeiten aktiv an rspec-rails
4.1, Sie können darauf zugreifen, indem Sie auf einen Zweig zeigen:
# Gemfile
gem 'rspec-rails', github: 'rspec/rspec-rails', branch: 'rails-6-1-dev'
Der Fix ist dort enthalten .
Entschuldigen Sie die Unannehmlichkeiten.
Melde dich gerne wieder, wenn es bei dir immer noch nicht funktioniert.
Vielen Dank, dass Sie mich wissen lassen!
Als vorübergehende Problemumgehung dafür habe ich, anstatt mit meiner Gemfile herumzuspielen und sicherzustellen, dass ich alle Abhängigkeiten habe, einfach meine eigene fixture_file_upload
-Methode definiert, nachdem ich mir den Quellcode für diese Methode angesehen habe:
def fixture_file_upload(path, mime_type)
Rack::Test::UploadedFile.new(Pathname.new(file_fixture_path).join(path), mime_type, false)
end
Hilfreichster Kommentar
Danke für die Meldung. Wir arbeiten aktiv an
rspec-rails
4.1, Sie können darauf zugreifen, indem Sie auf einen Zweig zeigen:Der Fix ist dort enthalten .
Entschuldigen Sie die Unannehmlichkeiten.
Melde dich gerne wieder, wenn es bei dir immer noch nicht funktioniert.