Class: Test::Unit::TestCase

Class | Test::Unit::TestCase
In: | test/unit/testcase.rb
Parent: | Object

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.

### Methods

== default_test name new run setup size suite teardown to_s

### Included Modules

Assertions Util::BacktraceFilter

### Constants

STARTED | = | name + "::STARTED"
FINISHED | = | name + "::FINISHED"

### Attributes

method_name | [R] |

### Public Class methods

new(test_method_name)

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

[Source]

    # File test/unit/testcase.rb, line 31
          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()

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

[Source]

    # File test/unit/testcase.rb, line 44
          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)

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

[Source]

    # File test/unit/testcase.rb, line 143
          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()

[Source]

    # File test/unit/testcase.rb, line 98
          def default_test
            flunk("No tests were specified")
          end

name()

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

[Source]

    # File test/unit/testcase.rb, line 133
          def name
            "#{@method_name}(#{self.class.name})"
          end

run(result) {|STARTED, name| ...}

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

[Source]

    # File test/unit/testcase.rb, line 65
          def run(result)
            yield(STARTED, name)
            @_result = result
            begin
              setup
              __send__(@method_name)
            rescue AssertionFailedError => e
              add_failure(e.message, e.backtrace)
            rescue StandardError, ScriptError
              add_error($!)
            ensure
              begin
                teardown
              rescue AssertionFailedError => e
                add_failure(e.message, e.backtrace)
              rescue StandardError, ScriptError
                add_error($!)
              end
            end
            result.add_run
            yield(FINISHED, name)
          end

setup()

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

[Source]

    # File test/unit/testcase.rb, line 90
          def setup
          end

size()

[Source]

    # File test/unit/testcase.rb, line 110
          def size
            1
          end

teardown()

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

[Source]

    # File test/unit/testcase.rb, line 95
          def teardown
          end

to_s()

Overridden to return name.

[Source]

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

[Validate]