module Test::Unit::FailureHandler

Public Class Methods

included(base) click to toggle source
# File lib/test/unit/failure.rb, line 81
def included(base)
  base.exception_handler(:handle_assertion_failed_error)
end

Public Instance Methods

add_failure(message, backtrace, options={}) click to toggle source

Report a failure.

This is a public API for developers who extend test-unit.

@param message [String] The description about the failure. @param backtrace [Array<String>] The backtrace for the failure. @option options [Object] :expected

The expected value of the assertion.

@option options [Object] :actual

The actual value of the assertion.

@option options [String] :inspected_expected

The inspected expected value of the assertion.
It is used for diff between expected and actual of the failure.

@option options [String] :inspected_actual

The inspected actual value of the assertion.
It is used for diff between expected and actual of the failure.

@option options [String] :user_message

The message of the assertion from user.

@option options [String] :method_name (@method_name)

The method name of the test.

@option options [Array<String, Integer>] :source_location

The location where the test is defined. It is the same
format as Proc#source_location. That is, it's an array of
path and and line number where the test definition is
started.

@return [void]

# File lib/test/unit/failure.rb, line 112
def add_failure(message, backtrace, options={})
  default_options = {
    :method_name => @method_name,
    :source_location => self[:source_location],
  }
  failure = Failure.new(name, filter_backtrace(backtrace), message,
                        default_options.merge(options))
  current_result.add_failure(failure)
end

Private Instance Methods

handle_assertion_failed_error(exception) click to toggle source
# File lib/test/unit/failure.rb, line 123
def handle_assertion_failed_error(exception)
  return false unless exception.is_a?(AssertionFailedError)
  problem_occurred
  add_failure(exception.message, exception.backtrace,
              :expected => exception.expected,
              :actual => exception.actual,
              :inspected_expected => exception.inspected_expected,
              :inspected_actual => exception.inspected_actual,
              :user_message => exception.user_message)
  true
end