2016-06-03 8 views
0

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!

Antwort

Verwandte Themen