我正在尝试测试以下场景:
-> 我有一个名为 Team 的模型,当它由用户创建时它才有意义。因此,每个团队实例必须与一个用户相关。
为了测试这一点,我做了以下工作:
describe Team do
...
it "should be associated with a user" do
no_user_team = Team.new(:user => nil)
no_user_team.should_not be_valid
end
...
end
这迫使我将团队模型更改为:
class Team < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :user
validates_presence_of :name
validates_presence_of :user
belongs_to :user
end
您认为这正确吗?我只是担心使 :user 属性可访问(批量分配)。
我通常使用这种方法:
describe User do
it "should have many teams" do
t = User.reflect_on_association(:teams)
expect(t.macro).to eq(:has_many)
end
end
更好的解决方案是使用 gemshoulda https://github.com/thoughtbot/shoulda这将使您能够简单地:
describe Team do
it { should belong_to(:user) }
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)