Class | Test::Unit::TestCase |
In: |
lib/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.
You can run two hooks before/after a TestCase run.
Example:
class TestMyClass < Test::Unit::TestCase class << self def startup ... end def shutdown ... end end def setup ... end def cleanup ... end def teardown ... end def test_my_method1 ... end def test_my_method2 ... end end
Here is a call order:
You can set an attribute to each test.
Example:
class TestMyClass < Test::Unit::TestCase attribute :speed, :fast def test_my_fast_method # You can get the attribute via `self[]` self[:speed] # => :fast ... end attribute :speed, :slow def test_my_slow_method self[:speed] # => :slow ... end end
method_name | [R] |
Describes a test.
The following example associates "register a normal user" description with "test_register" test.
description "register a normal user" def test_register ... end
Called after every test case runs. Can be used to tear down fixture information used in test case scope.
Here is an example test case:
class TestMyClass < Test::Unit::TestCase class << self def shutdown ... end end def teardown ... end def test_my_class1 ... end def test_my_class2 ... end end
Here is a call order:
Note that you should not assume test order. Tests should be worked in any order.
Called before every test case runs. Can be used to set up fixture information used in test case scope.
Here is an example test case:
class TestMyClass < Test::Unit::TestCase class << self def startup ... end end def setup ... end def test_my_class1 ... end def test_my_class2 ... end end
Here is a call order:
Note that you should not assume test order. Tests should be worked in any order.
Defines a sub test case.
This is a syntax sugar. The both of the following codes are the same in meaning:
Standard:
class TestParent < Test::Unit::TestCase class TestChild < self def test_in_child end end end
Syntax sugar:
class TestParent < Test::Unit::TestCase sub_test_case("TestChild") do def test_in_child end end end
The difference of them are the following:
@param name [String] The name of newly created sub test case. @yield
The block is evaluated under the newly created sub test case class context.
@return [Test::Unit::TestCase] Created sub test case class.
Defines a test in declarative syntax or marks following method as a test method.
In declarative syntax usage, the following two test definitions are the almost same:
description "register user" def test_register_user ... end test "register user" do ... end
In test method mark usage, the "my_test_method" is treated as a test method:
test def my_test_method assert_equal("call me", ...) end
Checks whether a test that is matched the query is defined.
@option query [String] :path (nil)
the path where a test is defined in.
@option query [Numeric] :line (nil)
the line number where a test is defined at.
@option query [String] :method_name (nil)
the method name for a test.
Sets the current test order.
Here are the available order:
Notify that the test is passed. Normally, it is not needed because run calls it automatically. If you want to override run, it is not a good idea. Please contact test-unit developers. We will help you without your custom run. For example, we may add a new hook in run.
This is a public API for developers who extend test-unit.
@return [void]
Called after every test method runs but the test method isn‘t marked as ‘passed’. Can be used to clean up and/or verify tested condition. e.g. Can be used to verify mock.
You can add additional cleanup tasks by the following code:
class TestMyClass < Test::Unit::TestCase def cleanup ... end cleanup def my_cleanup1 ... end cleanup do ... # cleanup callback1 end cleanup def my_cleanup2 ... end cleanup do ... # cleanup callback2 end def test_my_class ... end end
Here is a call order:
Returns a description for the test. A description will be associated by Test::Unit::TestCase.test or Test::Unit::TestCase.description.
Returns a name for the test for no description test.
Runs the individual test method represented by this instance of the fixture, collecting statistics, failures and errors in result.
Called before every test method runs. Can be used to set up fixture information.
You can add additional setup tasks by the following code:
class TestMyClass < Test::Unit::TestCase def setup ... end setup def my_setup1 ... end setup do ... # setup callback1 end setup def my_setup2 ... end setup do ... # setup callback2 end def test_my_class ... end end
Here is a call order:
Called after every test method runs. Can be used to tear down fixture information.
You can add additional teardown tasks by the following code:
class TestMyClass < Test::Unit::TestCase def teardown ... end teardown def my_teardown1 ... end teardown do ... # teardown callback1 end teardown def my_teardown2 ... end teardown do ... # teardown callback2 end def test_my_class ... end end
Here is a call order: