Я учусь как использованию случаев теста записи Rspec. У меня есть простые Леса Комментариев Сообщения, где Сообщение может иметь много Комментариев. Я тестирую это использование Rspec. Как я должен пойти о проверке Post :has_many :comments
. Если я блокирую Post.comments
метод и затем проверяет это с путем возврата фиктивного объекта массива объектов комментария? Тестирует на ассоциации AR, действительно требуемые?
Поскольку ассоциации ActiveRecord должны быть хорошо протестированы с помощью набора тестов Rails (а они так и есть), большинство людей не чувствуют необходимости проверять их работоспособность - просто предполагается, что они это сделают.
Если вы хотите убедиться, что ваша модель использует эти ассоциации, это нечто другое, и вы не ошибаетесь, желая это проверить. Мне нравится делать это с помощью драгоценного камня shoulda . Он позволяет делать такие изящные вещи, как это:
describe Post do
it { should have_many(:comments).dependent(:destroy) }
end
Большинство людей не тестируют ассоциации, поскольку в Rails уже есть модульные тесты, чтобы убедиться, что эти методы работают правильно. Если вы делаете что-то сложное, например, задействуете процесс или что-то в этом роде, вы можете явно протестировать это. Обычно это можно сделать, просто выполнив
a = Post.new
a.comments << Comment.new
assert a.save
assert a.comments.size == 1
или что-то подобное.