メインコンテンツまでスキップ

エラーを発生させる

and_raiseを使用して、テストダブルがメッセージを受け取ったときにエラーを発生させます。以下のいずれかの形式がサポートされています。

  • and_raise(ExceptionClass)
  • and_raise("message")
  • and_raise(ExceptionClass, "message")
  • and_raise(instance_of_an_exception_class)

エラーを発生させる

次の内容で「raises_an_error_spec.rb」という名前のファイルがあるとします。

RSpec.describe "Making it raise an error" do
it "raises the provided exception" do
dbl = double
allow(dbl).to receive(:foo).and_raise("boom")
dbl.foo
end
end

rspec raises_an_error_spec.rbを実行すると、

次のように失敗するはずです。

  1) Making it raise an error raises the provided exception
Failure/Error: dbl.foo

RuntimeError:
boom