NAME
Test2::Roo::Class - Base class for Test2::Roo test classes
VERSION
version 1.005
DESCRIPTION
This module is the base class for Test2::Roo test classes. It provides methods to run tests and anchor modifiers. Generally, you should not extend this class yourself, but use Test2::Roo to do so instead.
ATTRIBUTES
description
A description for a subtest block wrapping all tests by the object. It is a 'lazy' attribute. Test classes may implement their own _build_description
method to create a description from object attributes. Otherwise, the default is "testing with CLASS".
METHODS
run_tests
# as a class method
$class->run_tests();
$class->run_tests($description);
$class->run_tests($init_args);
$class->run_tests($description $init_args);
# as an object method
$self->run_tests();
$self->run_tests($description);
If called as a class method, this creates a test object using an optional hash reference of initialization arguments.
When called as an object method, or after an object has been generated, this method sets an optional description and runs tests. It will call the setup
method (triggering any method modifiers), will run all tests (triggering any method modifiers on each_test
) and will call the teardown
method (triggering any method modifiers).
If a description is provided, it will override any initialized or generated description
attribute.
The setup, tests and teardown will be executed in a "subtest_buffered" in Test2::Tools::Subtest block.
setup
This is an empty method used to anchor method modifiers. It should not be overridden by subclasses.
each_test
This method wraps the code references set by the test
function from Test2::Roo or Test2::Roo::Role in a "subtest_buffered" in Test2::Tools::Subtest block.
It may also be used to anchor modifiers that should run before or after each test block, though this can lead to brittle design as modifiers will globally affect every test block, including composed ones.
teardown
This is an empty method used to anchor method modifiers. It should not be overridden by subclasses.
AUTHOR
David Golden <dagolden@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2020 by David Golden, Diab Jerius (Smithsonian Astrophysical Observatory).
This is free software, licensed under:
The Apache License, Version 2.0, January 2004