module Test::Unit::FailureHandler - test-unit: Ruby Standard Library Documentation

# module Test::Unit::FailureHandler

### Public Class Methods

included(base) click to toggle source

    # File test-unit-3.6.7/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 test-unit-3.6.7/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 test-unit-3.6.7/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