Test::Able - xUnit with Moose
0.10
package MyTest; use Test::Able; use Test::More; 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;
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.
In addition to exporting for Moose, Test::Able will export a handful of functions that can be used to declare test-related methods.
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 method metaclass 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 the method metaclass that happens to take a coderef. See the synopsis or the tests for examples.
1. Build some test classes: a, b, & c. The classes just have to be based on Test::Able.
2. Fire up an instance of any of them to be the runner object. Any test object can serve as the test_runner_object including itself.
my $b_obj = b->new;
3. Setup the test_objects in the test_runner_object.
$b_obj->test_objects( [ a->new, $b_obj, c->new, ] );
4. Do the test run. The test_objects will be run in order.
$b_obj->run_tests;
#moose on irc.perl.org
http://github.com/jdv/test-able/tree/master
Justin DeVuyst, justin@devuyst.com
justin@devuyst.com
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.
To install Test::Able, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Able
CPAN shell
perl -MCPAN -e shell install Test::Able
For more information on module installation, please visit the detailed CPAN module installation guide.