在Rails 3中使用Rspec测试构建关联

时间:2011-05-21 20:42:07

标签: ruby-on-rails rspec

我的老师控制器的创建操作中有以下行。

 @rating = @teacher.ratings.build(params[:rating]) unless params[:rating][:rating].blank?

我知道我的关联是正确的,因为除非评级为空,否则此行会正确地与新教师一起创建新评级。但是我正在尽力遵循TDD,我不知道如何使用rspec测试该行。我有点不知所措。

我正在使用工厂女孩,如果有帮助的话,应该这样做。

1 个答案:

答案 0 :(得分:4)

您可以这样说:

teacher = Factory(:teacher)
rating = Factory(:rating, :teacher_id => teacher.id)
#your_other_actions_here
teacher.rating.should be present

(即如果评级属于用户。)

顺便说一下,你不应该测试这一行,因为它已经过Rails测试了。但是,如果此行嵌入到某个操作中,则应测试该行为。