@overload exception_handler
(method_name)
Add an exception handler method. @param method_name [Symbol] The method name that handles exception raised in tests. @return [void]
@overload exception_handler
(&callback)
Add an exception handler. @yield [test, exception] Gives the test and the exception. @yieldparam test [Test::Unit::TestCase] The test where the exception is raised. @yieldparam exception [Exception] The exception that is raised in running the test. @yieldreturn [Boolean] Whether the handler handles the exception or not. The handler must return _true_ if the handler handles test exception, _false_ otherwise. @return [void]
This is a public API for developers who extend test-unit.
# File test-unit-3.3.4/lib/test/unit/exception-handler.rb, line 52 def exception_handler(*method_name_or_handlers, &block) if block_given? exception_handlers.unshift(block) else method_name_or_handlers.each do |method_name_or_handler| if method_name_or_handler.respond_to?(:call) handler = method_name_or_handler exception_handlers.unshift(handler) else method_name = method_name_or_handler attribute(:exception_handler, true, {}, method_name) end end end end
# File test-unit-3.3.4/lib/test/unit/exception-handler.rb, line 25 def exception_handlers ExceptionHandler.exception_handlers end
# File test-unit-3.3.4/lib/test/unit/exception-handler.rb, line 68 def unregister_exception_handler(*method_name_or_handlers) method_name_or_handlers.each do |method_name_or_handler| if method_name_or_handler.respond_to?(:call) handler = method_name_or_handler exception_handlers.delete(handler) else method_name = method_name_or_handler attribute(:exception_handler, false, {}, method_name) end end end