NAME
Test::Class::Most - Test Classes the easy way
VERSION
Version 0.02
SYNOPSIS
use Test::Class::Most parent => 'My::Test::Class';
sub teststuff : Tests {
ok 1; # All Test::Most functions exported
}
DESCRIPTION
If you're not familiar with using Test::Class, please see my tutorial at:
http://www.modernperlbooks.com/mt/2009/03/organizing-test-suites-with-testclass.html
http://www.modernperlbooks.com/mt/2009/03/reusing-test-code-with-testclass.html
http://www.modernperlbooks.com/mt/2009/03/making-your-testing-life-easier.html
http://www.modernperlbooks.com/mt/2009/03/using-test-control-methods-with-testclass.html
http://www.modernperlbooks.com/mt/2009/03/working-with-testclass-test-suites.html
When people write test classes with the excellent Test::Class
, you often see the following at the top of the code:
package Some::Test::Class;
use strict;
use warnings;
use base 'My::Test::Class';
use Test::More;
use Test::Exception;
# and then the tests ...
That's a lot of boilerplate and I don't like boilerplate. So now you can do this:
use Test::Class::Most parent => 'My::Test::Class';
That automatically imports strict and warnings for you. It also gives you all of the testing goodness from Test::Most. As an added bonus, if you have 5.10 or greater, you automatically get all the new 5.10 features enabled, along with the c3 MRO. Unless you don't want them:
use Test::Class::Most feature => 0;
CREATING YOUR OWN BASE CLASS
You probably want to create your own base class for testing. To do this, simply specify no import list:
package My::Test::Class;
use Test::Class::Most; # we now inherit from Test::Class
INIT { Test::Class->runtests }
1;
And then your other classes inherit as normal (well, the way we do it):
package Tests::For::Foo;
use Test::Class::Most parent => 'My::Test::Class';
And you can inherit from those other classes, too:
package Tests::For::Foo::Child;
use Test::Class::Most parent => 'Tests::For::Foo';
Of course, it's quite possible that you're a fan of multiple inheritance, so you can do that, too (I was soooooo tempted to not allow this, but I figured I shouldn't force too many of my personal beliefs on you):
package Tests::For::ISuckAtOO;
use Test::Class::Most parent => [qw/
Tests::For::Foo
Tests::For::Bar
Some::Other::Class::For::Increased::Stupidity
/];
EXPORT
All functions from Test::Most are automatically exported into your namespace.
AUTHOR
Curtis "Ovid" Poe, <ovid at cpan.org>
BUGS
Please report any bugs or feature requests to bug-test-class-most at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Class-Most. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Test::Class::Most
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
SEE ALSO
-
xUnit-style testing in Perl
-
The most popular CPAN test modules bundled into one module.
-
I stole this code. Thanks
chromatic
!
ACKNOWLEDGEMENTS
Thanks to Adrian Howard for Test::Class, Adam Kennedy for maintaining it and chromatic
for Modern::Perl.
COPYRIGHT & LICENSE
Copyright 2010 Curtis "Ovid" Poe, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.