私は以下のシナリオを試してみようとしています:Rspecとの "関連付け"テストの正しい方法は?
- >私は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
これはあなたに正しいように見えるのか?私はthe:user属性をアクセス可能にすることを心配しています(質量割り当て)。
shoulda、実際にテストを行いますか?私は、新しいチームが実際にユーザーに属していることを確認したいと思います。 –
'Shoulda'はそれをテストします、それは" belongs_to関係が存在することを保証します "(http://rubydoc.info/github/thoughtbot/shoulda-matchers/master/Shoulda/Matchers/ActiveRecord#belong_to-instance_method)。したがって、新しいチームを作成するときには、ユーザーに属していると見なすことができます。 –
私はそれをテストしただけで、ユーザーを指定せずにチームを作成することができます。モデルにbelongs_toが存在するかどうかをチェックするだけのようです。私はチームにそれに関連付けられたユーザーがいることを確認したいと思います...私は、チームを作成するときに関連付けられたユーザーが存在することを検証する必要があると考えています... –