【发布时间】:2016-05-31 06:35:54
【问题描述】:
考虑两个模型:
class User < ActiveRecord::Base
has_one :book
after_create :create_book
end
class Book < ActiveRecord::Base
belongs_to :user
validate_uniqueness :user_id
end
每个用户可以拥有也只能拥有一本书。然后我在我的规范中定义了两个工厂:
factory :user do
end
factory book do
user
end
那么问题来了,当我为Book 编写测试时,我想在使用FactoryGirl.create(:book) 时为Book 创建一条记录book1(我们称之为)。它将创建Book 的实例,然后尝试创建定义user 的关联。创建用户后,after_create为触发器,book2为user创建。然后它尝试将book1 与user 绑定,并被唯一性关联阻止。
现在我正在使用book = FactoryGirl.create(:user).book。这是最好/正确的方法吗?我认为它的注释很直观,因为我正在测试Book,我认为最好有book = FactoryGirl.create(:book)
非常感谢。
【问题讨论】:
标签: ruby-on-rails testing rspec factory-bot rspec-rails