Wie test-upload mit Carrierwave + FactoryGirl
Ich möchte einige tests für meine app und ich habe die folgenden Fehler:
1) User feeds ordering should order feeds by id desc
Failure/Error: @post_1 = FactoryGirl.create(:post)
ActiveRecord::AssociationTypeMismatch:
Attachment(#87413420) expected, got Rack::Test::UploadedFile(#81956820)
# ./spec/models/user_spec.rb:37:in `block (3 levels) in <top (required)>'
Dieser Fehler ist denn ich habe diese auf meinem factories.rb
Datei
factory :post do
title "Lorem Ipsum"
description "Some random text goes here"
price "500000"
model "S 403"
makes "Toyota"
prefecture "Aichi-ken"
contact_info "ryu ryusaki"
year "2012"
shaken_validation "dec/2014"
attachments [ Rack::Test::UploadedFile.new(Rails.root.join("spec/fixtures/files/example.jpg"), "image/jpeg") ]
#attachments [ File.open(Rails.root.join("spec/fixtures/files/example.jpg")) ]
end
Den test erwarten eine Attachment
- Objekt, aber ich m erstellen einer Rack::Test::UploadedFile
Objekt. Wie kann ich das Problem lösen diesen Fehler?
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lief ich in Ihre Frage bei der Suche nach der gleichen Antwort. Bitte überprüfen Sie diese:
Wie Verwende Ich Factory Girl Zum Generieren Einer Büroklammer Anlage?
Glück!
update:
So, hier ist was ich Tat, Schritt für Schritt, um eine Datei hochzuladen, die in meinen Fabriken.rb.
A. Da ich rspec, ich habe eine directory-Leuchten unter spec/und ein Verzeichnis Bilder unter spec/Leuchten/, und setzen Sie dann ein example.jpg Bild hinein, so dass der Weg war Rails.root/spec/fixtures/images/example.jpg
B. Nächste, in meinen Fabriken.rb, änderte ich meine definition wie folgt:
(optional: starten Sie Ihren spork-server, wenn in rspec)
C. Sollte gut funktionieren jetzt.
Lassen Sie mich wissen, wenn Sie mehr Probleme haben. Ich werde mein bestes tun, um zu helfen 🙂
undefined method
fixture_file_upload' für #<FactoryBot::SyntaxRunner:0x007f9f0893e898>` auf den letzten Schienen/carrierwave/factorybot VersionenDies ist der Weg, den ich gefunden, um zu tun, was ich brauche.
{}
gezeigt in dieser Antwort um die fixture_file_upload () - Aufruf war was für mich gearbeitet. ohne die Klammern, ich war immer ein Fehler.Einen anderen Weg um das gleiche zu tun: