Cat モデルでいくつかのアクションを実行するメソッドがあり、入力が正しくない場合は例外が発生します。
context "hungry cat" do
it { expect { eat(what: nil) }.to raise_error }
end
私がやりたいことは、このメソッドが猫のステータスを変更するかどうかを確認することです。
context "hungry cat" do
it { expect { eat(what: nil) }.to raise_error }
it { expect { eat(what: nil) }.not_to change(cat, :status) }
end
問題はeat(what: nil)
、例外が発生するため、2番目の例外がit
何があっても失敗することです。では、例外を無視して何らかの条件をチェックすることは可能ですか?
次のようなことができることを知っています:
it do
expect do
begin
eat(what: nil)
rescue
end
end.not_to change(cat, :status)
end
しかし、それはあまりにも醜いです。