```{index} single: Test2::Tools::Defer ``` # 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 ```perl 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/test-more/`. ## MAINTAINERS - Chad Granum ## AUTHORS - Chad Granum ## COPYRIGHT Copyright Chad Granum . 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/`