2016-03-30 16 views

答えて

1

あなたはしないでください。シーケンスは一意のランダムデータを生成するために使用されます。あなたのモデルにrole関連性を持つようにしたい場合は は、あなたの工場でこのような何かを考えてみます。

FactoryGirl.define do 
    factory :person do 
    role 

    sequence(:email) { |n| "email-#{n}@example.com" } 
    phone SecureRandom.uuid 
    end 
end 
1

私はあなたが順序付けを使用してどのように私は従わわかりません。

account = FactoryGirl.create :account, name: "name", phone:"1234" 

それはあなたが提供するもので、すべての渡されたパラメータを上書きします:

伝統的な方法は、あなたがそのようにのようなアカウントを生成することができ、あなたの工場で

FactoryGirl.define do 
    factory :account do 
    name { "whatever" } 
    sequence(:role_id){ |i| "10#{i}"} 
    phone{ "5555" } 
    end 
end 

です。あなたはまた、:role_idを指定することができます

account = FactoryGirl.create :account, name: "name", phone:"1234", :role_id => "1015" 

さて、あなたはあなたが望む任意の値をテストすることができます。たとえば、RSpecの場合:

account = FactoryGirl.create :account, name: "name", phone:"1234" 
expect(account.role_id).to eq "1001". 

ここでテストしているのはFactoryGirlなので、何の意味もありません。それはすでにテスト済みです。 :)

関連する問題