Acme-Test

 view release on metacpan or  search on metacpan

lib/Acme/Test.pm  view on Meta::CPAN

my $href = {
    CODE    => { type   => 'subroutine', 
                 post   => '()',
                 tests  => [
                    'passed expected parameters',
                    'catches faulty input',
                    'works as expected with no input',
                    'return value OK',
                ]       
            },
    SCALAR  => { type   => 'global scalar', 
                 pre    => '$',
                 tests  => [
                    'available',
                    'initialized properly',
                    'content OK',
                ]
            },
    HASH    => { type   => 'global hash',
                 pre    => '%',
                 tests  => [
                    'available',
                    'initialized properly',
                    'contains all expected key/value pairs',
                ]
            },
    ARRAY   => { type   => 'global array',
                 pre    => '@',
                 tests  => [
                    'available',
                    'initialized properly',
                    'contains all expected elements',
                ]
            },
    IO      => { type   => 'global IO/Filehandle',
                 tests  => [
                    'available',
                    'initialized properly',
                ]
            },
    FORMAT  => { type   => 'format',
                 tests  => [
                    'available',
                    'prints ok',               
                ]

lib/Acme/Test.pm  view on Meta::CPAN


=head1 USE

Simply write

    use Acme::Test 'Your::Module';

at the top of your test scrip, and everything else goes automatically.

C<Acme::Test> will not only 'test' your subroutines, but also any
global variables and even IO and format handles! It will also make a
distinction between public and private subroutines/variables.

=head1 EXAMPLE

Imagine your test.pl script would look something like this:
    
    use lib '../devel/file-basename/lib';
    use Acme::Test 'File::Basename';

Then the resulting test output would look pretty much like this:

	# Testing File::Basename
	# [Public] Testing global array @File::Basename::EXPORT
	ok 1 -     @EXPORT available
	ok 2 -     @EXPORT initialized properly
	ok 3 -     @EXPORT contains all expected elements
	# [Public] Testing global scalar $File::Basename::Fileparse_fstype
	ok 4 -     $Fileparse_fstype available
	ok 5 -     $Fileparse_fstype initialized properly
	ok 6 -     $Fileparse_fstype content OK
	# [Public] Testing global scalar $File::Basename::Fileparse_igncase
	ok 7 -     $Fileparse_igncase available
	ok 8 -     $Fileparse_igncase initialized properly
	ok 9 -     $Fileparse_igncase content OK
	# [Public] Testing global array @File::Basename::ISA
	ok 10 -     @ISA available
	ok 11 -     @ISA initialized properly
	ok 12 -     @ISA contains all expected elements
	# [Public] Testing global scalar $File::Basename::VERSION
	ok 13 -     $VERSION available
	ok 14 -     $VERSION initialized properly
	ok 15 -     $VERSION content OK
	# [Public] Testing subroutine File::Basename::basename()
	ok 16 -     basename() passed expected parameters
	ok 17 -     basename() catches faulty input
	ok 18 -     basename() works as expected with no input
	ok 19 -     basename() return value OK
	# [Public] Testing subroutine File::Basename::dirname()
	ok 20 -     dirname() passed expected parameters



( run in 0.715 second using v1.01-cache-2.11-cpan-49f99fa48dc )