Test2::Tools::Defer - Write tests that get executed at a later time

- NAME
- DESCRIPTION
- SYNOPSIS
- EXPORTS
- SOURCE
- MAINTAINERS
- AUTHORS
- COPYRIGHT

# NAME

Test2::Tools::Defer - Write tests that get executed at a later time

# DESCRIPTION

Sometimes you need to test things BEFORE loading the necessary functions. This module lets you do that. You can write tests, and then have them run later, after `Test2` is loaded. You tell it what test function to run, and what arguments to give it. The function name and arguments will be stored to be executed later. When ready, run `do_def()` to kick them off once the functions are defined.

# SYNOPSIS

    use strict;
    use warnings;

    use Test2::Tools::Defer;

    BEGIN {
        def ok => (1, 'pass');
        def is => ('foo', 'foo', 'runs is');
        ...
    }

    use Test2::Tools::Basic;

    do_def(); # Run the tests

    # Declare some more tests to run later:
    def ok => (1, "another pass");
    ...

    do_def(); # run the new tests

    done_testing;

# EXPORTS

def function => @args;

  This will store the function name, and the arguments to be run later. Note that each package has a separate store of tests to run.

do_def()

  This will run all the stored tests. It will also reset the list to be empty so you can add more tests to run even later.

# SOURCE

The source code repository for Test2-Suite can be found at https://github.com/Test-More/Test2-Suite/.

# MAINTAINERS

Chad Granum <exodist@cpan.org>

# AUTHORS

Chad Granum <exodist@cpan.org>

# COPYRIGHT

Copyright 2018 Chad Granum <exodist@cpan.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/

Test2::Tools::Defer - Write tests that get executed at a later time