The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Test::Class::Most - Test Classes the easy way

VERSION

Version 0.03

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:

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:

SEE ALSO

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.