Ассоциация has_many для теста активной записи

#ruby-on-rails #cucumber #rails-activerecord

#ruby-on-rails #огурец #rails-activerecord

Вопрос:

Я пытаюсь проверить, правильно ли некоторые объекты связаны с объектом owner.

 class Recipe < ActiveRecord::Base
    has_many :ingredients
end
  

Я вставил ингредиенты и позже хочу проверить, относятся ли они к данному рецепту. В cucumber я хотел бы протестировать что-то вроде:

 recipe.ingredients.should_contain(ingredient1, ingredient2)
  

Как я могу это протестировать?

Ответ №1:

Это больше похоже на модульный или интеграционный тест и меньше на проверку поведения. Вы можете использовать shoulda, чтобы проверить, существует ли связь. https://github.com/thoughtbot/shoulda-matchers . Затем вы можете сделать что-то подобное для модульного теста.

     recipe.should have_many(:ingredients)
  

С другой стороны, вы можете вставить ингредиенты с помощью интеграционного теста и проверить связь с другой стороны, как вы задали в своем вопросе.