The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::Able - xUnit with Moose

VERSION

0.05

SYNOPSIS

 package MyTest;

 use Test::Able;
 use Test::More 'no_plan';

 startup         some_startup  => sub { ... };
 setup           some_setup    => sub { ... };
 test plan => 1, foo           => sub { ok( 1 ); };
 test            bar           => sub {
     my @runtime_list = 1 .. 42;
     $_[ 0 ]->meta->current_method->plan( scalar @runtime_list );
     ok( 1 ) for @runtime_list;
 };
 teardown        some_teardown => sub { ... };
 shutdown        some_shutdown => sub { ... };

 MyTest->run_tests;

DESCRIPTION

An xUnit style testing framework inspired by Test::Class and built using Moose. It can do all the important things Test::Class can do and more. The prime advantages of using this module instead of Test::Class are flexibility and power. Namely, Moose.

This module was created for a few of reasons:

  • To address perceived limitations in, and downfalls of, Test::Class.

  • To leverage existing Moose expertise for testing.

  • To bring Moose to the Perl testing game.

The core code and documentation are in Test::Able::Role::Meta::Class.

EXPORTED FUNCTIONS

In addition to exporting for Moose, Test::Able will export a handful of functions that can be used to declare test-related methods.

startup/setup/test/teardown/shutdown

A more Moose-like way to do method declaration. The syntax is similar to "has" in Moose except its for test-related methods.

These start with one of startup/setup/test/teardown/shutdown depending on what type of method you are defining. Then comes any attribute name/value pairs to set in the Test::Able::Role::Meta::Method-based object. The last pair must always be the method name and the coderef. This is to disambiguate between the method name/code pair and any another attribute in method metaclass that happens to take a coderef. See the synopsis or the tests for examples.

AUTHOR

Justin DeVuyst, justin@devuyst.com

COPYRIGHT AND LICENSE

Copyright 2009 by Justin DeVuyst.

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.