Тестирование ассоциации сборки с использованием Rspec в Rails 3

#ruby-on-rails #rspec

#ruby-на-рельсах #rspec

Вопрос:

У меня есть следующая строка в моем действии создания контроллера моих учителей.

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

Я знаю, что мои ассоциации верны, потому что эта строка правильно создает новую оценку вместе с новым преподавателем, если оценка не оставлена пустой. Однако я изо всех сил стараюсь следовать TDD, и я понятия не имею, как протестировать эту строку с помощью rspec. Я в некотором замешательстве.

Я использую factory girl и должен, если это поможет.

Ответ №1:

Вы можете сказать что-то вроде :

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

(Это если рейтинг принадлежит пользователю.)

Кстати, вам не следует тестировать эту строку, потому что она уже протестирована Rails. Однако вам следует протестировать поведение, если эта строка встроена в какое-либо действие.