assert_raiseの落とし穴

Test::Unitのassert_raiseメソッドを使おうとして落とし穴ににハマった。というか以前もハマったのだがまた同じ穴にorz…というわけでメモ。
assert_raiseにはブロックを与える。例:

require "test/unit"
require "class/hoge"

def TestHoge < Test::Unit::TestCasedef test_raise
    assert_raise(RuntimeError){hoge(foo)}
  end
end

間違いの例(LocalJumpErrorで落ちる):

    assert_raise(RuntimeError, hoge(foo))