Frage

Ich versuche, Spezifikationen für eine Arbeits Datei-Upload-Funktionalität zu schreiben attachment_fu verwenden. Jedoch erfordert das Beispielcode vom Autor zum Testen gegeben mich action_controller/test_process zu verlangen, so dass ich den Zugriff auf ActionController::UploadedStringIO Klasse. Ich dies vor in Schienen verwendet habe 2.x aber für Schienen 3, es scheitert die test_process Datei zu suchen.

Wie kann ich voran gehen mit Prüfung der Datei-Upload-Funktionalität in Schienen 3?

War es hilfreich?

Lösung

Ich konnte fixture_file_upload verwenden ganz gut mit Rails3 und rspec.

I include ActionDispatch::TestProcess zum spec_helper.rb nur gegeben, und dann so etwas wie die folgenden als FILEDATA übergeben:

fixture_file_upload(Rails.root.join("spec/support/test.png"), 'image/png')

EDIT: Etwas, das ich ein Upgrade, das Verhalten änderte sich dies immer auf die Befestigungen Pfad enthalten, so dass ich zu schaltet dies statt fixture_file_upload:

Rack::Test::UploadedFile.new(Rails.root.join("spec/support/test.png"), 'image/png')

Andere Tipps

Ich arbeite Datei-Uploads in Schienen 3 jetzt auf die Prüfung, obwohl ich weiß nicht, wie hilfreich meine Antwort sein wird. Wäre es möglich sein, dass Sie den Test ändern? Ich persönlich bin mit einer Gurke / Capybara Ansatz. Capybara DSL definiert

attach_file('Image', '/path/to/image.jpg')

Persönlich scheint dies eine bessere Art und Weise zu testen als mit dem StringIO Objekt interagiert ... zu Retorte frei fühlen.

Das war etwas schwierig für Rails zu finden 3

Sie können weiterhin die fixture_file_upload Funktion verwenden, aber man muss hinzufügen:

include ActionDispatch::TestProcess

Um Ihren Testfall.

Das hat nicht funktioniert überhaupt mit Rspec. Ich habe gerade die Datei selbst zu packen und die Datei direkt buchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top