# File test/unit/assertions.rb, line 296 def assert_throws(expected_symbol, message="", &proc) _wrap_assertion { assert_instance_of(Symbol, expected_symbol, "assert_throws expects the symbol that should be thrown for its first argument") assert(block_given?, "Should have passed a block to assert_throws") caught = true begin catch(expected_symbol) { proc.call caught = false } full_message = build_message(message, expected_symbol) { | arg | "<:#{arg}> should have been thrown" } assert(caught, full_message) rescue NameError => name_error if ( name_error.message !~ /^uncaught throw `(.+)'$/ ) #` raise name_error end full_message = build_message(message, expected_symbol, $1) { | arg1, arg2 | "<:#{arg1}> expected to be thrown but\n" + "<:#{arg2}> was thrown" } flunk(full_message) end } end