Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Test::API(3)	      User Contributed Perl Documentation	  Test::API(3)

NAME
       Test::API - Test	a list of subroutines provided by a module

VERSION
       version 0.010

SYNOPSIS
	   use Test::More tests	=> 3;
	   use Test::API;

	   require_ok( 'My::Package' );

	   public_ok ( 'My::Package', @names );

	   import_ok ( 'My::Package',
	       export	 => [ 'foo', 'bar' ],
	       export_ok => [ 'baz', 'bam' ],
	   );

	   class_api_ok( 'My::Class', @methods );

DESCRIPTION
       This simple test	module checks the subroutines provided by a module.
       This is useful for confirming a planned API in testing and ensuring
       that other functions aren't unintentionally included via	import.

USAGE
       Note: Subroutines starting with an underscore are ignored, as are a
       number of other methods not intended to be called directly by end-
       users.

	 import	unimport bootstrap

	 AUTOLOAD BUILD	BUILDARGS CLONE	CLONE_SKIP DESTROY DEMOLISH

	 TIESCALAR TIEARRAY TIEHASH TIEHANDLE

	 FETCH STORE UNTIE FETCHSIZE STORESIZE POP PUSH	SHIFT UNSHIFT SPLICE
	 DELETE	EXISTS EXTEND CLEAR FIRSTKEY NEXTKEY PRINT PRINTF WRITE
	 READLINE GETC READ CLOSE BINMODE OPEN EOF FILENO SEEK TELL SCALAR

	 MODIFY_REF_ATTRIBUTES MODIFY_SCALAR_ATTRIBUTES	MODIFY_ARRAY_ATTRIBUTES
	 MODIFY_HASH_ATTRIBUTES	MODIFY_CODE_ATTRIBUTES MODIFY_GLOB_ATTRIBUTES
	 MODIFY_FORMAT_ATTRIBUTES MODIFY_IO_ATTRIBUTES

	 FETCH_REF_ATTRIBUTES FETCH_SCALAR_ATTRIBUTES FETCH_ARRAY_ATTRIBUTES
	 FETCH_HASH_ATTRIBUTES FETCH_CODE_ATTRIBUTES FETCH_GLOB_ATTRIBUTES
	 FETCH_FORMAT_ATTRIBUTES FETCH_IO_ATTRIBUTES

       Therefore, do not include any of	these in a list	of expected
       subroutines.

   public_ok
	 public_ok( $package, @names );

       This function checks that all of	the @names provided are	available
       within the $package namespace and that *only* these subroutines are
       available.  This	means that subroutines imported	from other modules
       will cause this test to fail unless they	are explicitly included	in
       @names.

   class_api_ok
	 class_api_ok( $class, @names );

       A variation of "public_ok" for object-oriented modules. Allows
       superclasses to fill in "missing" subroutines, but "extra" methods
       provided	by superclasses	will not cause the test	to fail.

   import_ok
	 import_ok ( $package, %spec );

       This function checks that $package correctly exports an expected	list
       of subroutines and *only* these subroutines.  The %spec generally
       follows the style used by [Exporter], but in lower case:

	 %spec = (
	   export    =>	[ 'foo', 'bar' ],  # exported automatically
	   export_ok =>	[ 'baz', 'bam' ],  # optional exports
	 );

       For "export_ok",	the test will check for	public functions not listed in
       "export"	or "export_ok" that can	be imported and	will fail if any are
       found.

SEE ALSO
       o   Test::ClassAPI -- more geared towards class trees with inheritance

SUPPORT
   Bugs	/ Feature Requests
       Please report any bugs or feature requests through the issue tracker at
       <https://github.com/dagolden/Test-API/issues>.  You will	be notified
       automatically of	any progress on	your issue.

   Source Code
       This is open source software.  The code repository is available for
       public review and contribution under the	terms of the license.

       <https://github.com/dagolden/Test-API>

	 git clone https://github.com/dagolden/Test-API.git

AUTHOR
       David Golden <dagolden@cpan.org>

CONTRIBUTORS
       o   cpansprout <cpansprout@gmail.com>

       o   Toby	Inkster	<mail@tobyinkster.co.uk>

COPYRIGHT AND LICENSE
       This software is	Copyright (c) 2018 by David Golden.

       This is free software, licensed under:

	 The Apache License, Version 2.0, January 2004

perl v5.32.1			  2018-02-17			  Test::API(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | USAGE | SEE ALSO | SUPPORT | AUTHOR | CONTRIBUTORS | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Test::API&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help