Rspecのraise_error書くときの注意点

Rspecで例外発生のテストは中括弧(ブロック)で囲む

Rspecでテスト書いてるときたまに忘れてドハマリする

  • expect( @sheet.status = 10 ).to raise_error(ArgumentError)
  • 以下のエラーが出る
  • ArgumentError: '10' is not a valid status

そのエラー発生を期待したんですが?

  • エラー発生は正しいので、ちょっと嬉しい
  • プログラム間違ってない(^^)
  • エラー発生が期待した結果であることはどう書けば?

正解 expectのブロックで囲む

  • expect{ @sheet.status = 10 }.to raise_error(ArgumentError)
  • 上記赤中括弧の部分
  • 調べて正解見ても中括弧に気づかなくて何が間違ってるんだよクソがってなるのでメモ ^^;