Проверка ассоциаций ActiveRecord в RSpec

Я учусь как использованию случаев теста записи Rspec. У меня есть простые Леса Комментариев Сообщения, где Сообщение может иметь много Комментариев. Я тестирую это использование Rspec. Как я должен пойти о проверке Post :has_many :comments. Если я блокирую Post.comments метод и затем проверяет это с путем возврата фиктивного объекта массива объектов комментария? Тестирует на ассоциации AR, действительно требуемые?

17
задан Alok Swain 28 October 2011 в 08:06
поделиться

2 ответа

Поскольку ассоциации ActiveRecord должны быть хорошо протестированы с помощью набора тестов Rails (а они так и есть), большинство людей не чувствуют необходимости проверять их работоспособность - просто предполагается, что они это сделают.

Если вы хотите убедиться, что ваша модель использует эти ассоциации, это нечто другое, и вы не ошибаетесь, желая это проверить. Мне нравится делать это с помощью драгоценного камня shoulda . Он позволяет делать такие изящные вещи, как это:

describe Post do
  it { should have_many(:comments).dependent(:destroy) }
end
28
ответ дан 30 November 2019 в 11:22
поделиться

Большинство людей не тестируют ассоциации, поскольку в Rails уже есть модульные тесты, чтобы убедиться, что эти методы работают правильно. Если вы делаете что-то сложное, например, задействуете процесс или что-то в этом роде, вы можете явно протестировать это. Обычно это можно сделать, просто выполнив

a = Post.new
a.comments << Comment.new
assert a.save
assert a.comments.size == 1

или что-то подобное.

0
ответ дан 30 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: