Rechercher une page de manuel
Test::Unit::TestSuite.3pm
Langue: en
Version: 2007-05-09 (mandriva - 22/10/07)
Section: 3 (Bibliothèques de fonctions)
NAME
Test::Unit::TestSuite - unit testing framework base classSYNOPSIS
package MySuite;
use base qw(Test::Unit::TestSuite);
sub name { 'My very own test suite' } sub include_tests { qw(MySuite1 MySuite2 MyTestCase1 ...) }
This is the easiest way of building suites; there are many more. Read on ...
DESCRIPTION
This class provides the functionality for building test suites in several different ways.Any module can be a test suite runnable by the framework if it provides a "suite()" method which returns a "Test::Unit::TestSuite" object, e.g.
use Test::Unit::TestSuite;
# more code here ...
sub suite { my $class = shift;
# Create an empty suite. my $suite = Test::Unit::TestSuite->empty_new("A Test Suite"); # Add some tests to it via $suite->add_test() here
return $suite; }
This is useful if you want your test suite to be contained in the module it tests, for example.
Alternatively, you can have ``standalone'' test suites, which inherit directly from "Test::Unit::TestSuite", e.g.:
package MySuite;
use base qw(Test::Unit::TestSuite);
sub new { my $class = shift; my $self = $class->SUPER::empty_new(); # Build your suite here return $self; }
sub name { 'My very own test suite' }
or if your "new()" is going to do nothing more interesting than add tests from other suites and testcases via "add_test()", you can use the "include_tests()" method as shorthand:
package MySuite;
use base qw(Test::Unit::TestSuite);
sub name { 'My very own test suite' } sub include_tests { qw(MySuite1 MySuite2 MyTestCase1 ...) }
This is the easiest way of building suites.
CONSTRUCTORS
empty_new ([NAME])
my $suite = Test::Unit::TestSuite->empty_new('my suite name');
Creates a fresh suite with no tests.
new ([ CLASSNAME | TEST ])
If a test suite is provided as the argument, it merely returns that suite. If a test case is provided, it extracts all test case methods from the test case (see ``list_tests'' in Test::Unit::TestCase) into a new test suite.
If the class this method is being run in has an "include_tests" method which returns an array of class names, it will also automatically add the tests from those classes into the newly constructed suite object.
METHODS
name()
Returns the suite's human-readable name.
names()
Returns an arrayref of the names of all tests in the suite.
list (SHOW_TESTCASES)
Produces a human-readable indented lists of the suite and the subsuites it contains. If the first parameter is true, also lists any testcases contained in the suite and its subsuites.
add_test (TEST_CLASSNAME | TEST_OBJECT)
You can add a test object to a suite with this method, by passing either its classname, or the object itself as the argument.
Of course, there are many ways of getting the object too ...
# Get and add an existing suite. $suite->add_test('MySuite1');
# This is exactly equivalent: $suite->add_test(Test::Unit::TestSuite->new('MySuite1'));
# So is this, provided MySuite1 inherits from Test::Unit::TestSuite. use MySuite1; $suite->add_test(MySuite1->new());
# Extract yet another suite by way of suite() method and add it to # $suite. use MySuite2; $suite->add_test(MySuite2->suite());
# Extract test case methods from MyModule::TestCase into a # new suite and add it to $suite. $suite->add_test(Test::Unit::TestSuite->new('MyModule::TestCase'));
AUTHOR
Copyright (c) 2000-2002, 2005 the PerlUnit Development Team (see Test::Unit or the AUTHORS file included in this distribution).All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
- •
- Test::Unit::TestRunner
- •
- Test::Unit::TkTestRunner
- •
- For further examples, take a look at the framework self test collection (t::tlib::AllTests).
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre