2

私のアプリには電話モデルがあり、フィールドの1つは.guidで設定されていますbefore_create :set_guid(これはランダムな文字列を生成し、モデルの作成時にそれをguidフィールドに配置します)。

私の電話工場は次のようになっています。

require 'faker'

FactoryGirl.define do
  factory :phone do |f|
    f.phone { Faker::PhoneNumber.phone_number }
  end
end

電話を作成するためのこの簡単なテストは、GUIDが空白であるため、モデルの検証に失敗します。

describe Phone do
  it "has a valid factory"  do
    FactoryGirl.create(:phone).should be_valid
  end

もちろん、ファクトリ定義にguidフィールドを手動で詰め込むこともできますが、ファクトリがモデルの通常の検証とコールバックを実行して、それらが機能していることを確認する必要はありませんか?

明らかに私は何かが欠けています-FactoryGirlを使用して、GUIDなどを生成するbefore_createコールバックを適切に実行するモデルのインスタンスを作成する正しい方法は何ですか?

4

1 に答える 1