Мое приложение распространяет ActiveRecord:: RecordNotFound на контроллер, когда модель не может получить запись.
Вот запрос БД:
def self.select_intro_verse
offset = rand(IntroVerse.count)
IntroVerse.select('line_one', 'line_two', 'line_three', 'line_four', 'line_five').offset(offset).first!.as_json
end
first!
вызывает a ActiveRecord::RecordNotFound
, если запись не найдена, и я могу ее спасти и отобразить соответствующий шаблон в контроллере.
Это ожидаемое поведение, поэтому я бы хотел проверить его в моих спецификациях. Я написал:
context "verses missing in database" do
it "raises an exception" do
expect(VerseSelector.select_intro_verse).to raise_exception
end
end
Когда я запускаю rspec:
1) VerseSelector verses missing in database raises an exception
Failure/Error: expect(VerseSelector.select_intro_verse).to raise_exception
ActiveRecord::RecordNotFound:
ActiveRecord::RecordNotFound
Для меня тест не срабатывает, хотя исключение возникает! Как я могу пройти тест?