Alt-Sub-Delete-NewPackageSeparator

 view release on metacpan or  search on metacpan

t/Test/Builder/Module.pm  view on Meta::CPAN

package Test::Builder::Module;

use Test::Builder;

require Exporter;
@ISA = qw(Exporter);

$VERSION = '0.02';

use strict;

# 5.004's Exporter doesn't have export_to_level.
my $_export_to_level = sub {
      my $pkg = shift;
      my $level = shift;
      (undef) = shift;                  # redundant arg
      my $callpkg = caller($level);
      $pkg->export($callpkg, @_);
};


=head1 NAME

Test::Builder::Module - Base class for test modules

=head1 SYNOPSIS

  # Emulates Test::Simple
  package Your::Module;

  my $CLASS = __PACKAGE__;

  use base 'Test::Builder::Module';
  @EXPORT = qw(ok);

  sub ok ($;$) {
      my $tb = $CLASS->builder;
      return $tb->ok(@_);
  }
  
  1;


=head1 DESCRIPTION

This is a superclass for Test::Builder-based modules.  It provides a
handful of common functionality and a method of getting at the underlying
Test::Builder object.


=head2 Importing

Test::Builder::Module is a subclass of Exporter which means your
module is also a subclass of Exporter.  @EXPORT, @EXPORT_OK, etc...
all act normally.

A few methods are provided to do the C<use Your::Module tests => 23> part
for you.

=head3 import

Test::Builder::Module provides an import() method which acts in the
same basic way as Test::More's, setting the plan and controling
exporting of functions and variables.  This allows your module to set
the plan independent of Test::More.

All arguments passed to import() are passed onto 
C<< Your::Module->builder->plan() >> with the exception of 
C<import =>[qw(things to import)]>.

    use Your::Module import => [qw(this that)], tests => 23;

says to import the functions this() and that() as well as set the plan
to be 23 tests.

import() also sets the exported_to() attribute of your builder to be
the caller of the import() function.



( run in 0.736 second using v1.01-cache-2.11-cpan-39bf76dae61 )