Rails 3でのテストはまだかなり新しいので、RSpecとRemarkableを使用しています。私はすでにたくさんの投稿といくつかの本を読みましたが、協会の名前とそのIDをいつ使用するかについては、まだ不確実なままです。
class Project < ActiveRecord::Base
has_many :tasks
end
class Task < ActiveRecord::Base
belongs_to :project
end
良い習慣があるので、自分の属性を大量の割り当てから保護したいと思います。
class Task < ActiveRecord::Base
attr_accessible :project # Or is it :project_id??
belongs_to :project
end
まず第一に、有効なタスクなしでプロジェクトが存在しないことを確認したいと思います。
class Task < ActiveRecord::Base
validates :project, :presence => true # Which one is the...
validates :project_id, :presence => true # ...right way to go??
end
また、割り当てられたプロジェクトまたはプロジェクトIDが常に有効であることを確認したいと思います。
class Task < ActiveRecord::Base
validates :project, :associated => true # Again, which one is...
validates :project_id, :associated => true # ...the right way to go?
end
...そして:associatedを使用する場合、:presenceの検証が必要ですか?
明確にしてくれてありがとう、RSpec / shoulda / Remarkableを使って何時間も読んでテストしようとした後、もうすべての木があるので森が見えなくなったようです...