assert_raiseの落とし穴
Test::Unitのassert_raiseメソッドを使おうとして落とし穴ににハマった。というか以前もハマったのだがまた同じ穴にorz…というわけでメモ。
assert_raiseにはブロックを与える。例:
require "test/unit" require "class/hoge" def TestHoge < Test::Unit::TestCase … def test_raise assert_raise(RuntimeError){hoge(foo)} end end
間違いの例(LocalJumpErrorで落ちる):
assert_raise(RuntimeError, hoge(foo))