Acme-Test
view release on metacpan or search on metacpan
lib/Acme/Test.pm view on Meta::CPAN
### add sigils and the like ###
my $short = $name;
my $full = "${pkg}::$name";
for my $alias ($short, $full) {
$alias = $href->{$type}->{pre} . $alias
if $href->{$type}->{pre};
$alias .= $href->{$type}->{post} if $href->{$type}->{post};
}
diag("$status Testing $href->{$type}->{type} $full");
for my $test ( @{$href->{$type}->{tests}} ) {
ok( 1, " $short $test" );
}
}
}
}
}
}
=pod
=head1 NAME
Acme::Test
=head1 SYNOPSIS
use Acme::Test qw[Your::Module Your::Other::Module];
=head1 DESCRIPTION
All the latest software craze is about regression tests and XP
programming -- Write a test, make sure it fails. Then write the
functionality and make sure the test now passes, etc.
Although these are good ideas, who really has time for this?
Fixing faililng tests is a lot of work, and one can only be happy
with a test suite that has no fails.
Enter C<Acme::Test> -- automate test-suite generation with guaranteed
passing tests for your modules!
=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
ok 21 - dirname() catches faulty input
ok 22 - dirname() works as expected with no input
ok 23 - dirname() return value OK
# [Public] Testing subroutine File::Basename::fileparse()
ok 24 - fileparse() passed expected parameters
ok 25 - fileparse() catches faulty input
ok 26 - fileparse() works as expected with no input
ok 27 - fileparse() return value OK
# [Public] Testing subroutine File::Basename::fileparse_set_fstype()
ok 28 - fileparse_set_fstype() passed expected parameters
ok 29 - fileparse_set_fstype() catches faulty input
ok 30 - fileparse_set_fstype() works as expected with no input
ok 31 - fileparse_set_fstype() return value OK
1..31
=head1 BUGS
In code this funky, I'm sure there are some ;)
=head1 AUTHOR
This module by
Jos Boumans E<lt>kane@cpan.orgE<gt>.
=head1 COPYRIGHT
This module is
( run in 1.252 second using v1.01-cache-2.11-cpan-39bf76dae61 )