1#-- 2# 3# Author:: Nathaniel Talbott. 4# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. 5# License:: Ruby license. 6 7require 'test/unit/util/backtracefilter' 8 9module Test 10 module Unit 11 12 # Encapsulates an error in a test. Created by 13 # Test::Unit::TestCase when it rescues an exception thrown 14 # during the processing of a test. 15 class Error 16 include Util::BacktraceFilter 17 18 attr_reader(:test_name, :exception) 19 20 SINGLE_CHARACTER = 'E' 21 22 # Creates a new Error with the given test_name and 23 # exception. 24 def initialize(test_name, exception) 25 @test_name = test_name 26 @exception = exception 27 end 28 29 # Returns a single character representation of an error. 30 def single_character_display 31 SINGLE_CHARACTER 32 end 33 34 # Returns the message associated with the error. 35 def message 36 "#{@exception.class.name}: #{@exception.message}" 37 end 38 39 # Returns a brief version of the error description. 40 def short_display 41 "#@test_name: #{message.split("\n")[0]}" 42 end 43 44 # Returns a verbose version of the error description. 45 def long_display 46 backtrace = filter_backtrace(@exception.backtrace).join("\n ") 47 "Error:\n#@test_name:\n#{message}\n #{backtrace}" 48 end 49 50 # Overridden to return long_display. 51 def to_s 52 long_display 53 end 54 end 55 end 56end 57