Moja aplikacja propaguje ActiveRecord :: RecordNotFound do kontrolera, gdy model nie może pobrać rekordu.Test dla ActiveRecord :: RecordNotFound
Oto kwerendy DB:
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!
podnosi ActiveRecord::RecordNotFound
jeśli nie zostanie znaleziony rekord, i jestem w stanie go uratować i zdać odpowiedni szablon w moim kontrolera.
Jest to oczekiwane zachowanie, więc chciałbym mieć test na to w mojej specyfikacji. Napisałem:
context "verses missing in database" do
it "raises an exception" do
expect(VerseSelector.select_intro_verse).to raise_exception
end
end
Kiedy biegnę rspec:
1) VerseSelector verses missing in database raises an exception Failure/Error: expect(VerseSelector.select_intro_verse).to raise_exception ActiveRecord::RecordNotFound: ActiveRecord::RecordNotFound
Dla mnie test nie powiedzie się, mimo że jest wyjątek! Jak mogę przekazać test?
+1 być uczciwym. :-) –
_muszę być lambda lub proc_ - powinno być pogrubione :) – Fabio