NAME¶
Test::Unit::Procedural - Procedural style unit testing interface
SYNOPSIS¶
use Test::Unit::Procedural;
# your code to be tested goes here
sub foo { return 23 };
sub bar { return 42 };
# define tests
sub test_foo { assert(foo() == 23, "Your message here"); }
sub test_bar { assert(bar() == 42, "I will be printed if this fails"); }
# set_up and tear_down are used to
# prepare and release resources need for testing
sub set_up { print "hello world\n"; }
sub tear_down { print "leaving world again\n"; }
# run your test
create_suite();
run_suite();
DESCRIPTION¶
Test::Unit::Procedural is the procedural style interface to a sophisticated unit
testing framework for Perl that is derived from the JUnit testing framework
for Java by Kent Beck and Erich Gamma. While this framework is originally
intended to support unit testing in an object-oriented development paradigm
(with support for inheritance of tests etc.), Test::Unit::Procedural is
intended to provide a simpler interface to the framework that is more suitable
for use in a scripting style environment. Therefore, Test::Unit::Procedural
does not provide much support for an object-oriented approach to unit testing
- if you want that, please have a look at Test::Unit::TestCase.
You test a given unit (a script, a module, whatever) by using
Test::Unit::Procedural, which exports the following routines into your
namespace:
- assert()
- used to assert that a boolean condition is true
- create_suite()
- used to create a test suite consisting of all methods with a name prefix
of "test"
- run_suite()
- runs the test suite (text output)
- add_suite()
- used to add test suites to each other
For convenience, "create_suite()" will automatically build a test
suite for a given package. This will build a test case for each subroutine in
the package given that has a name starting with "test" and pack them
all together into one TestSuite object for easy testing. If you dont give a
package name to "create_suite()", the current package is taken as
default.
Test output is one status line (a "." for every successful test run,
or an "F" for any failed test run, to indicate progress), one result
line ("OK" or "!!!FAILURES!!!"), and possibly many lines
reporting detailed error messages for any failed tests.
Please remember, Test::Unit::Procedural is intended to be a simple and
convenient interface. If you need more functionality, take the object-oriented
approach outlined in Test::Unit::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::TestCase
- •
- the procedural style examples in the examples directory