pra*_*mod 6 rspec ruby-on-rails factory-bot
我有一个典型的要求,我必须按如下方式处理用户对象
user.referrer and user.referrers.
Run Code Online (Sandbox Code Playgroud)
基本上,用户可以推荐多个人,并且一个人应该由一位特定用户推荐。所以我按如下方式建立关联。他们工作得很好。
class User < ActiveRecord::Base
attr_accessible :account_number, :display_name, :referrer_id
has_many :referrers, :class_name => "User", :foreign_key => "referrer_id"
belongs_to :referrer, :class_name => "User"
end
Run Code Online (Sandbox Code Playgroud)
现在我想测试 Rspec 中的关联。我正在使用工厂女孩,所以有人可以帮助我建造工厂。
我尝试如下但最终出现错误
factory :user do
gender :male
name "super test"
.....
.....
factory :referrer do
end
association :referrer
end
Run Code Online (Sandbox Code Playgroud)
您需要在这里构建两个工厂,一个用于具有引用者的用户,第二个用于没有引用者的用户 - 否则您将最终陷入无限创建循环。您可以为此使用特征:
factory :user do
gender :male
name "super test"
trait :with_referrer do
association :referrer, factory: :user
end
end
FactoryGirl.create(:user, :with_referrer)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3453 次 |
| 最近记录: |