Ruby on rails 如何测试依赖于另一个模型的模型?

Ruby on rails 如何测试依赖于另一个模型的模型?,ruby-on-rails,ruby,testing,rspec,associations,Ruby On Rails,Ruby,Testing,Rspec,Associations,我有用户,帐户,和角色模型。用户可以独立存在。帐户必须通过角色绑定到用户。帐户必须至少有一个“所有者”类型的角色记录。我不知道如何在RSpec和FactoryGirl中测试这一点 # user_id, account_id, role Role < ActiveRecord::Base belongs_to :user belongs_to :account end User < ActiveRecord::Base has_many :roles has_many

我有
用户
帐户
,和
角色
模型。用户可以独立存在。帐户必须通过角色绑定到用户。帐户必须至少有一个“所有者”类型的角色记录。我不知道如何在RSpec和FactoryGirl中测试这一点

# user_id, account_id, role
Role < ActiveRecord::Base
  belongs_to :user
  belongs_to :account
end

User < ActiveRecord::Base
  has_many :roles
  has_many :accounts, through: roles
  accepts_nested_properties_for :accounts
end

Account < ActiveRecord::Base
  has_many :roles
  has_many :users, through: roles
end
然后,当用户登录时和未登录时,测试会增加复杂性。我能看到类似用例的任何参考示例代码吗?我也不确定在角色规范中测试什么,以及什么属于帐户规范/用户规范

工厂:

FactoryGirl.define do
  factory :user do
    name                  "Mickey Mouse"
    email                 "mickey@disney.com"
    password              "m1ckey"
    password_confirmation "m1ckey"
  end
  factory :account do
    title     "ACME Corporation"
    subdomain "acme"
  end
  factory :role do
    user
    account
  end
end

通过对其他对象使用模拟框架来测试依赖于其他对象的对象。有很多方法可以让你做到这一点。

或者他可以使用内置的RSpec。@MarkThomas,太好了!还有一件事要学。我只是能找到一种在RoR中提高效率的方法。总有一些新东西需要学习。RSpec,水豚,mocks,stubs,咖啡脚本,sass,这个列表永远不会结束@MarkThomas:是的,我链接的IBM文档中提到了这一点。
FactoryGirl.define do
  factory :user do
    name                  "Mickey Mouse"
    email                 "mickey@disney.com"
    password              "m1ckey"
    password_confirmation "m1ckey"
  end
  factory :account do
    title     "ACME Corporation"
    subdomain "acme"
  end
  factory :role do
    user
    account
  end
end