From df7fc7ce1b3d2749e747241c838757d9b016fcdc Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 24 Dec 2013 09:36:46 +0000 Subject: assertions.rb: improve assert_throw * lib/test/unit/assertions.rb (assert_throw): revert r44379 and improve failure message, since assert_throws cannot extract the inspection from the execption message correctly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/test/unit/assertions.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'lib/test/unit') diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb index 788a2e47fb..7476c428af 100644 --- a/lib/test/unit/assertions.rb +++ b/lib/test/unit/assertions.rb @@ -191,7 +191,21 @@ module Test # assert_throw(tag, "#{tag} was not thrown!") do # throw tag # end - alias assert_throw assert_throws + def assert_throw(tag, msg = nil) + catch(tag) do + begin + yield(tag) + rescue ArgumentError => e + raise unless thrown = e.message[/\Auncaught throw (.+)\z/m, 1] + end + msg = message(msg) { + "Expected #{mu_pp(tag)} to have been thrown"\ + "#{", not #{thrown}" if thrown}" + } + assert(false, msg) + end + assert(true) + end # :call-seq: # assert_equal( expected, actual, failure_message = nil ) -- cgit v1.2.3