thrown() を使って、Spock で例外発生をテストする
Spock の例外発生テストは楽です。
when: stack.pop() then: thrown(EmptyStackException)
Spock 使い始めて数ヶ月たちますが、上記の例外補足の方法しか認識してませんでした。
when: stack.pop() then: EmptyStackException e = thrown() e.cause ==null
このように書けば、例外補足できるだけでなく、例外の中身(例えば、cause や message)も取得、検証できます。
Spock のサイトにもきちんと記載されているのですが、気づいていませんでした。
・http://code.google.com/p/spock/wiki/SpockBasics
JUnit の @Rule ExpectedException あたりでも使わないと、スマートに書けないだろうな…なんて思っていました。
(try-catch する方法はもちろん確実ですが、かっこわるい)
明日から例外発生のテストが楽しくなりそうです。