Ich versuche zu testen, Dokumente in Schienen hochladen. Ich benutze carrierwave um Dokumente hochzuladen. Der entsprechende Code ist unten angegeben.Test fehlgeschlagen zum Hochladen von Dokumenten schlägt in Schienen fehl
Document Modell Testcode
class DocumentTest < ActiveSupport::TestCase
def setup
@category = categories(:category_a)
@document = @category.documents.build(file_name: "abc", file: "abc.doc")
end
test "document valid" do
assert @document.valid?
end
Document Model Code
class Document < ActiveRecord::Base
belongs_to :category
mount_uploader :file, FileUploader
validates :file_name, presence: true
validates :file, presence: true
validate :file_size
end
file_uploader Code
Im Folgenden werden die Dateien, die ich die weiße Liste gesetzt haben.
Ich bekomme eine Failed assertion
, wenn ich die Tests ausführen. Ich habe den validates :file, presence: true
Code auskommentiert und die Tests bestanden. Ich habe Datei als Typ string
in der Datenbank. Die Übergabe eines Zeichenfolgenwerts entspricht jedoch der Übergabe eines leeren Werts. Daher schlägt die presence: true
Validierung fehl. Ich bin nicht sicher, warum das scheitert, obwohl ich einen String-Wert übergebe. Ich denke, ich muss zusätzliche Parameter oder Informationen für die Tests eingeben, um zu wissen, um welche Art von Datei es sich handelt. Vielen Dank!