fixture_file_upload hat {Datei} existiert nicht error
Unten ist mein Test-code für den Datei Upload.
describe "file process" do
before(:each) do
# debugger
@file = fixture_file_upload('test.csv', 'text/csv')
end
it "should be able to upload file" do
post :upload_csv, :upload => @file
response.should be_success
end
end
Jedoch, wenn ich rspec spec, es erzeugt mir den Fehler unten
Failure/Error: @file = fixture_file_upload('test.csv', 'text/csv')
RuntimeError:
test.csv file does not exist
# ./spec/controllers/quotation_controller_spec.rb:29:in `block (3 levels) in <top (required)>'
Habe ich gegoogelt eine Menge von Orten, aber ich konnte immer noch nicht herausfinden, was ist der Grund dahinter. Irgendeine Idee?
- Fand eine Lösung, die aus SO http://stackoverflow.com/questions/3966263/attachment-fu-testing-in-rails-3. Anscheinend habe ich zu ersetzen fixture_file_upload mit dieser Linie
@file = Rack::Test::UploadedFile.new(Rails.root.join('spec/fixtures/test.csv'), 'text/csv')
- fixture_file_upload nicht die Arbeit mit Rails 3.1?
- Ich begann sehen diese, nachdem wir ein Upgrade auf 3.2
- es scheint, es ist gebrochen in rails 3.2, überprüfen Sie dieses Problem auf github: github.com/rspec/rspec-rails/issues/252
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fixture_file_upload im Grunde noch funktioniert. Sie müssen nur sicherstellen, dass die Halterungen Weg in Ihre
spec_helper.rb
Datei ist aufgehoben & richtig gesetztspec/fixtures
Pfad & enthaltenActionDispath::TestProcess
:Ist und wo Sie die Angabe der Datei, in der tests werden Sie sicher, dass Sie vor Ihren Dateiname mit '/' wie im folgenden Beispiel:
Den absoluten Pfad zu der Datei ist der Basis-Pfad angegeben in
config.fixture_path
plus der relative Pfad angegeben infixture_file_upload
Aufruf der Funktion. Also, in diesem Beispielfile.csv
gelegt werden muss, in#{::Rails.root}/spec/fixtures/files/data.csv
include ActionDispatch::TestProcess
. Gerade dies ist das Problem für michinclude ActionDispatch::TestProcess
ist, was fixiert es für mich auch. Das ungerade Teil ist, dass wirfixture_file_upload
Geldstrafe in anderen rspec tests, aber es konnte nicht für eine neue. Kann sein, dass diese neue Spezifikation wurde im lösungsumfang in einem Modul.Basierend auf der am meisten gewählte Antwort auf diese Frage, die Sie haben, um die Datei unter {Rails.root}/spec/Spiele/Dateien