2011-05-21 54 views
1

我在我的教师控制器的创建操作中有以下行。使用Rails 3中的Rspec测试构建关联

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

我知道我的联想是正确的,因为除非评级留空该行正确旁边一个新老师创建了一个新的等级。然而,我正在尽我所能去跟踪TDD,而且我不知道如何使用rspec来测试这条线。我有点不知所措。

我使用工厂女孩和应该如果有帮助。

回答

3

你可以这样说:

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

(也就是说,如果一个等级属于用户)

顺便说一句,你应该不考这条线,因为它已经通过Rails的测试。但是,如果将此行嵌入到某个操作中,则应该测试行为。