logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Test::SubCalls - Track the number of times subs are called

Author

       Adam Kennedy <adamk@cpan.org>

Description

       There are a number of different situations (like testing caching code) where you want to want to do a
       number of tests, and then verify that some underlying subroutine deep within the code was called a
       specific number of times.

       This module provides a number of functions for doing testing in this way in association with your normal
       Test::More (or similar) test scripts.

Functions

       In the nature of test modules, all functions are exported by default.

   sub_track$subname
       The "sub_track" function creates a new call tracker for a named function.

       The sub to track must be provided by name, references to the function itself are insufficient.

       Returns true if added, or dies on error.

   sub_calls$subname,$expected_calls[,$message]
       The "sub_calls" function is the primary (and only) testing function provided by "Test::SubCalls". A
       single call will represent one test in your plan.

       It takes the subroutine name as originally provided to "sub_track", the expected number of times the
       subroutine should have been called, and an optional test message.

       If no message is provided, a default message will be provided for you.

       Test is ok if the number of times the sub has been called matches the expected number, or not ok if not.

   sub_reset$subname
       To prevent repeat users from having to take before and after counts when they start testing from after
       zero, the "sub_reset" function has been provided to reset a sub call counter to zero.

       Returns true or dies if the sub name is invalid or not currently tracked.

   sub_reset_all
       Provided mainly as a convenience, the "sub_reset_all" function will reset all the counters currently
       defined.

       Returns true.

Name

       Test::SubCalls - Track the number of times subs are called

See Also

       <http://ali.as/>, Test::Builder, Test::More, Hook::LexWrap

Support

       Bugs should be submitted via the CPAN bug tracker, located at

       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-SubCalls>

       For other issues, or commercial enhancement or support, contact the author.

Synopsis

         use Test::SubCalls;

         # Start tracking calls to a named sub
         sub_track( 'Foo::foo' );

         # Run some test code
         ...

         # Test that some sub deep in the codebase was called
         # a specific number of times.
         sub_calls( 'Foo::foo', 5 );
         sub_calls( 'Foo::foo', 5, 'Use a custom test message' );

         # Reset the counts for one or all subs
         sub_reset( 'Foo::foo' );
         sub_reset_all();

Version

       version 1.10

See Also