This class is used by the framework to record the results of tests, which will throw an instance of a
subclass of Test::Unit::Exception in case of errors or failures.
To achieve this, this class gets called with a test case as argument. It will call this test case's run
method back and catch any exceptions thrown.
It could be argued that Test::Unit::Result is the heart of the PerlUnit framework, since TestCase classes
vary, and you can use one of several Test::Unit::TestRunners, but we always gather the results in a
Test::Unit::Result object.
This is the quintessential call tree of the communication needed to record the results of a given test:
$aTestCase->run() {
# creates result
$aTestResult->run($aTestCase) {
# catches exception and records it
$aTestCase->run_bare() {
# runs test method inside eval
$aTestCase->run_test() {
# calls method $aTestCase->name()
# and propagates exception
# method will call Assert::assert()
# to cause failure if test fails on
# test assertion
# it finds this because $aTestCase is-a Assert
}
}
}
}
Note too that, in the presence of Test::Unit::TestSuites, this call tree can get a little more
convoluted, but if you bear the above in mind it should be apparent what's going on.