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