私のアプリには電話モデルがあり、フィールドの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コールバックを適切に実行するモデルのインスタンスを作成する正しい方法は何ですか?