Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more

In Files

  • test/unit/testcase.rb
  • test/unit/ui/console/testrunner.rb
  • test/unit/ui/fox/testrunner.rb
  • test/unit/ui/gtk/testrunner.rb
  • test/unit/ui/gtk2/testrunner.rb
  • test/unit/ui/tk/testrunner.rb

Test::Unit::TestCase

Ties everything together. If you subclass and add your own test methods, it takes care of making them into tests and wrapping those tests into a suite. It also does the nitty-gritty of actually running an individual test and collecting its results into a Test::Unit::TestResult object.

Constants

FINISHED
PASSTHROUGH_EXCEPTIONS

These exceptions are not caught by run.

STARTED

Attributes

method_name[R]

Public Class Methods

new(test_method_name) click to toggle source

Creates a new instance of the fixture for running the test represented by test_method_name.

 
               # File test/unit/testcase.rb, line 39
def initialize(test_method_name)
  unless(respond_to?(test_method_name) and
         (method(test_method_name).arity == 0 ||
          method(test_method_name).arity == -1))
    throw :invalid_test
  end
  @method_name = test_method_name
  @test_passed = true
end
            
suite() click to toggle source

Rolls up all of the test* methods in the fixture into one suite, creating a new instance of the fixture for each method.

 
               # File test/unit/testcase.rb, line 52
def self.suite
  method_names = public_instance_methods(true)
  tests = method_names.delete_if {|method_name| method_name !~ /^test./}
  suite = TestSuite.new(name)
  tests.sort.each do
    |test|
    catch(:invalid_test) do
      suite << new(test)
    end
  end
  if (suite.empty?)
    catch(:invalid_test) do
      suite << new("default_test")
    end
  end
  return suite
end
            

Public Instance Methods

==(other) click to toggle source

It’s handy to be able to compare TestCase instances.

 
               # File test/unit/testcase.rb, line 153
def ==(other)
  return false unless(other.kind_of?(self.class))
  return false unless(@method_name == other.method_name)
  self.class == other.class
end
            
default_test() click to toggle source
 
               # File test/unit/testcase.rb, line 108
def default_test
  flunk("No tests were specified")
end
            
name() click to toggle source

Returns a human-readable name for the specific test that this instance of TestCase represents.

 
               # File test/unit/testcase.rb, line 143
def name
  "#{@method_name}(#{self.class.name})"
end
            
run(result) click to toggle source

Runs the individual test method represented by this instance of the fixture, collecting statistics, failures and errors in result.

 
               # File test/unit/testcase.rb, line 73
def run(result)
  yield(STARTED, name)
  @_result = result
  begin
    setup
    __send__(@method_name)
  rescue AssertionFailedError => e
    add_failure(e.message, e.backtrace)
  rescue Exception
    raise if PASSTHROUGH_EXCEPTIONS.include? $!.class
    add_error($!)
  ensure
    begin
      teardown
    rescue AssertionFailedError => e
      add_failure(e.message, e.backtrace)
    rescue Exception
      raise if PASSTHROUGH_EXCEPTIONS.include? $!.class
      add_error($!)
    end
  end
  result.add_run
  yield(FINISHED, name)
end
            
setup() click to toggle source

Called before every test method runs. Can be used to set up fixture information.

 
               # File test/unit/testcase.rb, line 100
def setup
end
            
size() click to toggle source
 
               # File test/unit/testcase.rb, line 120
def size
  1
end
            
teardown() click to toggle source

Called after every test method runs. Can be used to tear down fixture information.

 
               # File test/unit/testcase.rb, line 105
def teardown
end
            
to_s() click to toggle source

Overridden to return name.

 
               # File test/unit/testcase.rb, line 148
def to_s
  name
end