2017-12-14 13 views
-2

偽の、しかし現実的なフルファイル化されたActiveRecordインスタンスを作成するにはどうすればよいですか?偽のActiveRecordオブジェクトを作成する方法

たとえば、name(String)、created_at(Date)、およびid(Integer)のようなプロパティを持つContract.rbというモデルがある場合、どのような方法でContractのインスタンスを返しますか?偽物だが現実的な価値?

私は優れた宝石詐欺師について知っていますが、私はContract.rbのすべてのプロパティを、適切なタイプですべて動的に埋めたいと思っています。

どうすればこの問題を解決できますか?

+2

これは何をしようとしていますか? 'Contract'オブジェクトのいくつかのインスタンスメソッドをテストしようとしていますが、実際にデータベースにヒットするのを避けたいのですか? – ymbirtt

+0

私は、デフォルトでは、正しい実現オブジェクトが必要です。プロパティを変更/追加するたびに、私はそれに応じて工場とテストを更新したくありません。 – bdavidxyz

答えて

0

あなたはfakerforgery宝石を使用することができますいずれかcontract.rb

のすべてのフィールドを埋めるために独自のメソッドを記述する必要があります。

多くの人は、これらの宝石を使って偽のレコードでデータベースをシードしたり、テストスイートを生成したりします。

私たちは工場の少女と偽造宝石を使用して、私たちのデータベースに1M個のダミーレコードを植えました。

5

FactoryGirlFakerとすると、これを実現できます。正式FactoryBotに変更され@stefan FactoryGirlで述べたように:

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

FactoryGirlの宝石を使用すると、偽物の宝石から

NOTEの値を持つレコードを作成するのに役立ちます。

+3

10月にライブラリが "Factory Bot"に改名されました。 – Stefan

+0

はい私は実際にそれを更新しようとしていた –

+0

その後、名前を変更した理由を調べ始める:D –

関連する問題