rspec에서 예외가 발생했는지 확인
이 기사에서 쓰는 것
다음과 같은 처리에서 ensure 처리가 실행되었는지 여부를 확인하는 방법
class Cat < ApplicationRecord
validates :todays_foods, presence: true
def sing!
sing_a_song!
ensure
say_hello
end
def say_hello
'にゃーん'
end
def sing_a_song!
if todays_foods.empty?
raise お腹が空いてたらエラー
return
end
'にゃにゃにゃーん!'
end
end
테스트 내용
describe '#sing!' do
context 'with exception error,' do
let!(:cat) do
cat = build(:cat, name: 'お腹すいた猫', todays_foods: 0)
cat.save(validate: false) # validatesを無効にして作成。
cat
end
it 'say にゃーん.' do
expect do
cat.sing!
end.to raise_error(ActiveRecord::RecordInvalid).and(eq('にゃーん'))
end
end
end
Reference
이 문제에 관하여(rspec에서 예외가 발생했는지 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xxl/items/707d13187420567694b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)