2017-12-14 4 views
-2

Wie kann ich eine gefälschte, aber realistische Voll-ActiveRecord-Instanz erstellen? Wenn ich beispielsweise das Modell Contract.rb mit Eigenschaften wie name (String), created_at (Datum) und id (Integer) habe, was sollte eine Methode tun, die eine Instanz von Contract mit allen Eigenschaften zurückgibt, die mit festgelegt wurden falsche, aber realistische Werte?So erstellen Sie ein gefälschtes ActiveRecord-Objekt

Ich weiß über die ausgezeichnete Edelstein-Fälscher, aber ich möchte alle Eigenschaften von Contract.rb alle dynamisch gefüllt werden, mit dem entsprechenden Typ.

Wie kann ich das erreichen?

+2

Was versuchen Sie, dies zu tun? Versuchen Sie, eine Instanzmethode des Objekts "Contract" zu testen, wollen Sie aber vermeiden, die Datenbank tatsächlich zu treffen? – ymbirtt

+0

Ich möchte, standardmäßig, ein korrekt erfülltes Objekt. Jedes Mal, wenn ich eine Eigenschaft ändere/hinzufüge, möchte ich meine Fabriken nicht entsprechend aktualisieren und testen. – bdavidxyz

Antwort

0

Sie müssen eigene Methode schreiben, um alle Bereiche der contract.rb zu füllen

Sie entweder faker oder forgery Edelsteine ​​verwenden können.

oft benutzen Leute diese Edelsteine, um ihre Datenbasis mit gefälschten Aufzeichnungen oder für das Generieren von Testsuiten zu säen.

Wir verwendeten gefälschte Juwel mit Fabrik Mädchen, um unsere Datenbank mit 1M Dummy-Aufzeichnungen zu säen.

5

Sie können FactoryGirl mit Faker verwenden, um dies zu erreichen.

FactoryGirl.define do 
    factory :user, class: User do 
    email { Faker::Internet.email } 
    password 'password' 
    password_confirmation { password } 
    end 
end 

factoryEdelStein wird Ihnen helfen, die Datensätze mit den Werten von Faker gem

Hinweis zu erstellen: Wie @stefan FactoryGirl erwähnt wird FactoryBot offiziell umbenannt.

+3

Die Bibliothek wurde im Oktober in "Factory Bot" umbenannt. – Stefan

+0

Ja, ich habe das Update –

+0

Dann suche ich, warum sie es umbenannt: D –

Verwandte Themen