Test::Async::Metamodel::BundleClassHOW
- metaclass backing custom bundle classes.
This class function is to ensure that test tool methods are wrapped into common boilerplate. The boilerplate does the following:
determines calling context to make sure any error reported points at user code where the test tool is invoked. As a result it sets two dynamic variables
$*TEST-THROWS-LIKE-CTX
– Stash
for test tools using EVAL.
$*TEST-CALLER
- CallerFrame
instance of the frame where the tool is invoked.
validates if current suite stage allows test tool invokation
tries to transition the suite into TSInProgress
stage if tool method object has `$.readify` set (see Test::Async::TestTool
emits Event::Skip
if tool method has its $.skippable
set and suite's $.skip-message
is defined.
otherwise invokes the original test tool method code.
Note that wrapping doesn't replace the method object itself.
Test::Async::Manual
, Test::Async::Decl
Vadim Belman <vrurg@cpan.org>