GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
* Sign Up! *

Support
Customer Portal
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Venus::Test(3) User Contributed Perl Documentation Venus::Test(3)

Venus::Test - Test Class

Test Class for Perl 5

  package main;
  use Venus::Test;
  my $test = Venus::Test->new('t/Venus_Test.t');
  # $test->for('name');
  # $test->for('tagline');
  # $test->for('abstract');
  # $test->for('synopsis');
  # $test->done;

This package aims to provide a standard for documenting Venus derived software projects, a framework writing tests, test automation, and documentation generation. This package will automatically exports "true", "false", and "test" keyword functions.

This section describes the specification format used by Venus::Test to generate documentation and automate testing for Perl packages. The specification uses specially formatted POD blocks that serve as both human-readable documentation and executable test cases.

Note: When code blocks are evaluated, "redefined" warnings are automatically disabled.

A specification document consists of POD blocks that describe a package. The blocks are organized into the following categories:

  • Required Blocks - Must be present in every specification
  • Package Structure Blocks - Define inheritance and dependencies
  • API Blocks - Document attributes, methods, functions, etc.
  • Supporting Blocks - Signatures, examples, metadata, and exceptions
  • Feature Blocks - Special capabilities and operators
  • Document Control Blocks - Layout and partial inclusions
  • Project Information Blocks - Authors, license, version

  # [required]
  =name
  =abstract
  =tagline
  =synopsis
  =description
  # [optional]
  =encoding
  =includes
  =libraries
  =inherits
  =integrates
  # [optional; repeatable]
  =attribute $name
  =signature $name
  =metadata $name
  =example-$number $name
  =raise $name $error ($id optional)
  =function $name
  =signature $name
  =metadata $name
  =example-$number $name
  =raise $name $error ($id optional)
  =message $name
  =signature $name
  =metadata $name
  =example-$number $name
  =method $name
  =signature $name
  =metadata $name
  =example-$number $name
  =raise $name $error ($id optional)
  =routine $name
  =signature $name
  =metadata $name
  =example-$number $name
  =raise $name $error ($id optional)
  =feature $name
  =metadata $name
  =example-$number $name
  =error $name
  =example-$number $name
  =operator $name
  =example-$number $name
  # [optional]
  =layout
  =partials
  =authors
  =license
  =project
  =version

These blocks must be present in every specification document.

  =name
  Example
  =cut
  $test->for('name');

The "name" block should contain the package name. This is tested for loadability.

  =abstract
  Example Test Documentation
  =cut
  $test->for('abstract');

The "abstract" block should contain a subtitle describing the package. This is tested for existence.

  =tagline
  Example Class
  =cut
  $test->for('tagline');

The "tagline" block should contain a 2-5 word description of the package, which will be prepended to the name as a full description of the package.

  =synopsis
    use Example;
    my $example = Example->new;
    # bless(..., "Example")
  =cut
  $test->for('synopsis', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "synopsis" block should contain the normative usage of the package. This is tested for existence. This block should be written in a way that allows it to be evaled successfully and should return a value.

  =description
  This package provides an example class.
  =cut
  $test->for('description');

The "description" block should contain a description of the package and its behaviors.

These optional blocks define the package's relationships and dependencies.

  =includes
  function: eg
  method: prepare
  method: execute
  =cut
  $test->for('includes');

The "includes" block should contain a list of "function", "method", and/or "routine" names in the format of "$type: $name". Empty (or commented out) lines are ignored. Each function, method, and/or routine is tested to be documented properly, i.e. has the requisite counterparts (e.g. signature and at least one example block). Also, the package must recognize that each exists.

  =libraries
  Venus::Check
  =cut
  $test->for('libraries');

The "libraries" block should contain a list of packages, each describing how particular type names used within function and method signatures will be validated. These packages are tested for loadability.

  =inherits
  Venus::Core::Class
  =cut
  $test->for('inherits');

The "inherits" block should contain a list of parent packages. These packages are tested for loadability.

  =integrates
  Venus::Role::Catchable
  Venus::Role::Throwable
  =cut
  $test->for('integrates');

The "integrates" block should contain a list of packages that are involved in the behavior of the main package (typically roles). These packages are not automatically tested.

These blocks document the package's interface: attributes, methods, functions, messages, and routines. Each API block follows a common pattern requiring a description block, a signature block, and at least one example block.

All API blocks (attribute, function, message, method, routine) follow this structure:

  =$type $name               # Description of the $type
  =signature $name           # Type signature
  =metadata $name            # Optional metadata (since, deprecated, etc.)
  =example-1 $name           # First example (required)
  =example-2 $name           # Additional examples (optional)
  =raise $name $error        # Document exceptions (optional)
  =raise $name $error $id    # Exception with named error (optional)
  ...

The "signature" block should contain a routine signature in the form of "$signature : $return_type", where $signature is a valid typed signature and $return_type is any valid Venus::Check expression.

The "example-$number" block should contain valid Perl code and return a value. Examples can include a "magic" comment to incorporate other code:

  • "# given: synopsis" - Include the synopsis code
  • "# given: example-$number $name" - Include another example's code

  =attribute name
  The name attribute is read-write, optional, and holds a string.
  =signature name
    name(string $value) (string)
  =metadata name
  since: 1.0.0
  =example-1 name
    # given: synopsis
    my $name = $example->name;
    # "..."
  =cut
  $test->for('attribute', 'name');
  $test->for('example', 1, 'name', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "attribute" block should contain a description of the attribute and its purpose. Each attribute is tested and must be recognized to exist.

  =method prepare
  The prepare method prepares for execution.
  =signature prepare
    prepare() (boolean)
  =example-1 prepare
    # given: synopsis
    my $prepare = $example->prepare;
    # "..."
  =cut
  $test->for('method', 'prepare');
  $test->for('example', 1, 'prepare', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "method" block should contain a description of the method and its purpose. Each method is tested and must be recognized to exist.

  =function eg
  The eg function returns a new instance of Example.
  =signature eg
    eg() (Example)
  =example-1 eg
    # given: synopsis
    my $example = eg();
    # "..."
  =cut
  $test->for('function', 'eg');
  $test->for('example', 1, 'eg', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "function" block should contain a description of the function and its purpose. Each function is tested and must be recognized to exist.

  =routine process
  The process routine processes and returns data.
  =signature process
    process(any @args) (any)
  =example-1 process
    # given: synopsis
    my $result = $example->process;
    # "..."
  =cut
  $test->for('routine', 'process');
  $test->for('example', 1, 'process', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "routine" block documents a subroutine that can be called as either a function or a method. It follows the same pattern as method and function blocks.

  =message accept
  The accept message represents acceptance.
  =signature accept
    accept(any @args) (string)
  =example-1 accept
    # given: synopsis
    my $accept = $example->accept;
    # "..."
  =cut
  $test->for('message', 'accept');
  $test->for('example', 1, 'accept', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "message" block documents a method that returns a message string, typically used for error messages or localization. It follows the same pattern as other API blocks.

These blocks provide additional context for API documentation.

  =signature prepare
    prepare() (boolean)
  =cut
  $test->for('signature', 'prepare');

The "signature" block should contain a routine signature in the form of "$signature : $return_type", where $signature is a valid typed signature and $return_type is any valid Venus::Check expression.

  =example-1 name
    # given: synopsis
    my $name = $example->name;
    # "..."
  =cut
  $test->for('example', 1, 'name', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "example-$number $name" block should contain valid Perl code and return a value. The block may contain a "magic" comment in the form of "given: synopsis" or "given: example-$number $name" which if present will include the given code example(s) with the evaluation of the current block.

  =metadata prepare
  {since => "1.2.3"}
  =cut
  $test->for('metadata', 'prepare');

The "metadata $name" block should contain a stringified hashref containing Perl data structures used in the rendering of the package's documentation. Metadata can also be specified as flat key/value pairs:

  =metadata prepare
  introduced: 1.2.3
  deprecated: 2.0.0
  =cut

  =raise execute Venus::Error
    # given: synopsis
    $example->operation; # throw exception
    # Error
  =cut
  $test->for('raise', 'execute', 'Venus::Error', sub {
    my ($tryable) = @_;
    my $error = $tryable->error->result;
    $test->is_error($error);
  });

The "raise $name $error" block documents an exception that may be thrown by an API (attribute, function, method, or routine). The parameters are:

  • $name - The name of the attribute, function, method, or routine that may throw the exception.
  • $error - The error class or package that may be caught (e.g., "Venus::Error", "Example::Error").
  • $id (optional) - An error name for further classification within the error class.

The $error represents the exception class that calling code can catch using a try/catch mechanism. This links the API documentation to error handling expectations.

An optional $id can be appended to specify a named error. Venus::Error objects support named errors for further classification:

  =raise execute Venus::Error on.unknown
    # given: synopsis
    $example->operation; # throw exception
    # Error (on.unknown)
  =cut
  $test->for('raise', 'execute', 'Venus::Error', 'on.unknown', sub {
    my ($tryable) = @_;
    my $error = $tryable->error->result;
    $test->is_error($error);
    $test->is($error->name, 'on.unknown');
  });

When $id is provided, it indicates a specific named error within the error class, allowing for more granular error documentation and handling.

These blocks document special capabilities, errors, and operator overloads.

  =feature noop
  This package provides no particularly useful features.
  =example-1 noop
    # given: synopsis
    my $feature = $example->feature;
    # "..."
  =cut
  $test->for('feature');
  $test->for('example', 1, 'noop', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "feature $name" block should contain a description of the feature(s) the package enables, and can include an "example-$number $name" block to ensure the feature described works as expected.

  =error error_on_unknown
  This package may raise an error_on_unknown error.
  =example-1 error_on_unknown
    # given: synopsis
    my $error = $example->catch('error', {
      with => 'error_on_unknown',
    });
    # "..."
  =cut
  $test->for('error', 'error_on_unknown');
  $test->for('example', 1, 'error_on_unknown', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "error $name" block should contain a description of the error the package may raise, and can include an "example-$number $name" block to ensure the error is raised and caught.

  =operator ("")
  This package overloads the C<""> operator.
  =example-1 ("")
    # given: synopsis
    my $string = "$example";
    # "..."
  =cut
  $test->for('operator', '("")');
  $test->for('example', 1, '("")', sub {
    my ($tryable) = @_;
    $tryable->result;
  });

The "operator $name" block should contain a description of the overloaded operation the package performs, and can include an "example-$number $name" block to ensure the operation is functioning properly.

These blocks control how documentation is rendered.

  =encoding
  utf8
  =cut
  $test->for('encoding');

The "encoding" block should contain the appropriate encoding.

  =layout
  encoding
  name
  synopsis
  description
  attributes: attribute
  authors
  license
  =cut
  $test->for('layout');

The "layout" block should contain a list of blocks to render using "render", in the order they should be rendered.

  =partials
  t/path/to/other.t: present: authors
  t/path/to/other.t: present: license
  =cut
  $test->for('partials');

The "partials" block should contain references to other marked-up test files in the form of "$file: $method: $section", which will call the $method on a Venus::Test instance for the $file and include the results in-place as part of the rendering of the current file.

These blocks provide metadata about the project.

  =authors
  Awncorp, C<awncorp@cpan.org>
  =cut
  $test->for('authors');

The "authors" block should contain text describing the authors of the package.

  =license
  No license granted.
  =cut
  $test->for('license');

The "license" block should contain a link and/or description of the license governing the package.

  =project
  https://github.com/awncorp/example
  =cut
  $test->for('project');

The "project" block should contain a description and/or links for the package's project.

  =version
  1.2.3
  =cut
  $test->for('version');

The "version" block should contain a valid version number for the package.

This framework provides automated subtests based on the package specification, but also provides hooks for manual testing when automation is not sufficient.

For simple blocks, testing verifies existence:

  $test->for('name');
  $test->for('abstract');
  $test->for('description');

Code examples can be evaluated and returned using a callback for further testing:

  $test->for('synopsis', sub {
    my ($tryable) = @_;
    my $result = $tryable->result;
    # must return truthy to continue
    $result;
  });

Because code examples are returned as Venus::Try objects, capturing and testing exceptions is straightforward:

  $test->for('synopsis', sub {
    my ($tryable) = @_;
    # catch exception thrown by the synopsis
    $tryable->catch('Path::Find::Error', sub {
      return $_[0];
    });
    # test the exception
    my $result = $tryable->result;
    ok $result->isa('Path::Find::Error'), 'exception caught';
    # must return truthy to continue
    $result;
  });

The "example" method evaluates a given example and returns the result as a Venus::Try object. The first argument is the example number:

  $test->for('example', 1, 'children', sub {
    my ($tryable) = @_;
    my $result = $tryable->result;
    # must return truthy to continue
    $result;
  });

The "feature" method evaluates a documented feature and returns the result as a Venus::Try object:

  $test->for('feature', 'export-path-make', sub {
    my ($tryable) = @_;
    ok my $result = $tryable->result, 'result ok';
    # must return truthy to continue
    $result;
  });

The test automation and documentation generation enabled through this framework makes it easy to maintain source/test/documentation parity. This also increases reusability and reduces the need for complicated state and test setup.

This package has the following attributes:

  file(string $data) (string)

The file attribute is read-write, accepts "(string)" values, and is required.

Since 4.15

file example 1
  # given: synopsis
  package main;
  my $set_file = $test->file("t/Venus_Test.t");
  # "t/Venus_Test.t"
    
file example 2
  # given: synopsis
  # given: example-1 file
  package main;
  my $get_file = $test->file;
  # "t/Venus_Test.t"
    

This package inherits behaviors from:

Venus::Kind

This package integrates behaviors from:

Venus::Role::Buildable

Venus::Role::Encaseable

This package provides the following functions:

  test(string $file) (Venus::Test)

The test function is exported automatically and returns a Venus::Test object for the test file given.

Since 0.09

test example 1
  package main;
  use Venus::Test;
  my $test = test 't/Venus_Test.t';
  # bless(..., "Venus::Test")
    

This package provides the following methods:

  auto(string $name, any @args) (any)

The auto method gets or sets environment variables that control automatic behaviors in the testing framework. When called with just a name, it returns the current value of the corresponding environment variable. When called with a name and value, it sets the environment variable. The environment variable name is derived from the name parameter as "VENUS_TEST_AUTO_${NAME}".

Supported auto settings:

  • "bailout" - When truthy, bails out of testing on the first error.
  • "render" - When truthy, automatically renders POD when "done" is called.
  • "scrub" - When truthy, uses "scrub" in Venus::Space to clean up packages created in example code for testing.
  • "unpatch" - When truthy, uses "unpatch" in Venus::Space (via "unpatch") to restore any existing monkey-patching on the package associated with the test.

Since 4.15

auto example 1
  # given: synopsis
  package main;
  my $auto = $test->auto('render');
  # undef
    
auto example 2
  # given: synopsis
  package main;
  my $auto = $test->auto('render', 1);
  # 1
    
auto example 3
  # given: synopsis
  package main;
  $test->auto('render', 1);
  my $auto = $test->auto('render');
  # 1
    
auto example 4
  # given: synopsis
  package main;
  $test->auto('render', 0);
  my $auto = $test->auto('render');
  # 0
    
auto example 5
  # given: synopsis
  package main;
  my $auto = $test->auto('bailout');
  # undef
    
auto example 6
  # given: synopsis
  package main;
  my $auto = $test->auto('bailout', 1);
  # 1
    
auto example 7
  # given: synopsis
  package main;
  $test->auto('bailout', 1);
  my $auto = $test->auto('bailout');
  # 1
    
auto example 8
  # given: synopsis
  package main;
  $test->auto('bailout', 0);
  my $auto = $test->auto('bailout');
  # 0
    
auto example 9
  # given: synopsis
  package main;
  my $auto = $test->auto('scrub');
  # undef
    
auto example 10
  # given: synopsis
  package main;
  my $auto = $test->auto('scrub', 1);
  # 1
    
auto example 11
  # given: synopsis
  package main;
  $test->auto('scrub', 1);
  my $auto = $test->auto('scrub');
  # 1
    
auto example 12
  # given: synopsis
  package main;
  $test->auto('scrub', 0);
  my $auto = $test->auto('scrub');
  # 0
    
auto example 13
  # given: synopsis
  package main;
  my $auto = $test->auto('unpatch');
  # undef
    
auto example 14
  # given: synopsis
  package main;
  my $auto = $test->auto('unpatch', 1);
  # 1
    
auto example 15
  # given: synopsis
  package main;
  $test->auto('unpatch', 1);
  my $auto = $test->auto('unpatch');
  # 1
    
auto example 16
  # given: synopsis
  package main;
  $test->auto('unpatch', 0);
  my $auto = $test->auto('unpatch');
  # 0
    

  diag(string @messages) (any)

The diag method prints diagnostic messages using "diag" in Test::More.

Since 4.15

diag example 1
  # given: synopsis
  package main;
  my $diag = $test->diag('Test failed due to...');
  # ()
    

  done() (any)

The done method dispatches to the "done_testing" in Test::More operation and returns the result.

Since 4.15

done example 1
  # given: synopsis
  package main;
  my $done = $test->done;
  # true
    

  eval(string $perl) (any)

The eval method evaluates Perl code and returns the result.

Since 4.15

eval example 1
  # given: synopsis
  package main;
  my $eval = $test->eval('1 + 1');
  # 2
    

  explain(any @args) (any)

The explain method dispatches to the "explain" in Test::More operation and returns the result.

Since 4.15

explain example 1
  # given: synopsis
  package main;
  my $explain = $test->explain(123.456);
  # "123.456"
    

  fail(any $data, string $description) (any)

The fail method dispatches to the "ok" in Test::More operation expecting the first argument to be falsy and returns the result.

Since 4.15

fail example 1
  # given: synopsis
  package main;
  my $fail = $test->fail(0, 'example-1 fail passed');
  # true
    

  for(any @args) (Venus::Test)

The for method dispatches to the "execute" method using the arguments provided within a subtest and returns the invocant.

Since 4.15

for example 1
  # given: synopsis
  package main;
  my $for = $test->for('name');
  # bless(..., "Venus::Test")
    
for example 2
  # given: synopsis
  package main;
  my $for = $test->for('synopsis');
  # bless(..., "Venus::Test")
    
for example 3
  # given: synopsis
  package main;
  my $for = $test->for('synopsis', sub{
    my ($tryable) = @_;
    return $tryable->result;
  });
  # bless(..., "Venus::Test")
    
for example 4
  # given: synopsis
  package main;
  my $for = $test->for('example', 1, 'test', sub {
    my ($tryable) = @_;
    return $tryable->result;
  });
  # bless(..., "Venus::Test")
    

  gate(string $note, coderef $code) (Venus::Test)

The gate method creates a new Venus::Test instance with a gate callback that prevents subtests from running unless the callback returns a truthy value.

Since 4.15

gate example 1
  # given: synopsis
  package main;
  my $test2 = $test->gate('OS is linux', sub {
    $^O eq 'linux'
  });
  # bless(..., "Venus::Test")
    

  handler(any @args) (any)

The handler method dispatches to the Test::More method specified by the first argument and returns its result.

Since 4.15

handler example 1
  # given: synopsis
  package main;
  my $handler = $test->handler('ok', true);
  # true
    

  in(arrayref | hashref | consumes[Venus::Role::Mappable] $collection, any $value) (boolean)

The in method checks if a value exists in a collection (arrayref, hashref, or "mappable" object) and returns true if the type and value match.

Since 4.15

in example 1
  # given: synopsis
  package main;
  my $in = $test->in([1, 2, 3], 2);
  # true
    

  is(any $data1, any $data2, string $description) (any)

The is method tests for equality using "is" in Test::More.

Since 4.15

is example 1
  # given: synopsis
  package main;
  my $is = $test->is('hello', 'hello', 'strings match');
  # ()
    

  is_arrayref(any $data, string @args) (boolean)

The is_arrayref method tests whether the data is an arrayref using "is_arrayref" in Venus.

Since 4.15

is_arrayref example 1
  # given: synopsis
  package main;
  my $is_arrayref = $test->is_arrayref([1,2,3], 'valid arrayref');
  # true
    

  is_blessed(any $data, string @args) (boolean)

The is_blessed method tests whether the data is blessed using "is_blessed" in Venus.

Since 4.15

is_blessed example 1
  # given: synopsis
  package main;
  my $is_blessed = $test->is_blessed(bless({}), 'valid blessed');
  # true
    

  is_boolean(any $data, string @args) (boolean)

The is_boolean method tests whether the data is a boolean using "is_boolean" in Venus.

Since 4.15

is_boolean example 1
  # given: synopsis
  package main;
  require Venus;
  my $is_boolean = $test->is_boolean(true, 'valid boolean');
  # true
    

  is_coderef(any $data, string @args) (boolean)

The is_coderef method tests whether the data is a coderef using "is_coderef" in Venus.

Since 4.15

is_coderef example 1
  # given: synopsis
  package main;
  my $is_coderef = $test->is_coderef(sub{}, 'valid coderef');
  # true
    

  is_dirhandle(any $data, string @args) (boolean)

The is_dirhandle method tests whether the data is a directory handle using "is_dirhandle" in Venus.

Since 4.15

is_dirhandle example 1
  # given: synopsis
  package main;
  opendir(my $dh, '.');
  my $is_dirhandle = $test->is_dirhandle($dh, 'valid dirhandle');
  # true
    

  is_enum(any $data, arrayref | hashref $data, string @args) (boolean)

The is_enum method tests whether the data is an enum using "is_enum" in Venus.

Since 4.15

is_enum example 1
  # given: synopsis
  package main;
  $test->is_enum('light', ['light', 'dark'], 'is in enum');
  # true
    

  is_error(any $data, string @args) (boolean)

The is_error method tests whether the data is a Venus::Error object using "is_error" in Venus.

Since 4.15

is_error example 1
  # given: synopsis
  package main;
  use Venus::Error;
  my $is_error = $test->is_error(Venus::Error->new, 'valid error');
  # true
    

  is_false(any $data, string @args) (boolean)

The is_false method tests whether the data is a false value using "is_false" in Venus.

Since 4.15

is_false example 1
  # given: synopsis
  package main;
  my $is_false = $test->is_false(0, 'valid false');
  # true
    

  is_fault(any $data, string @args) (boolean)

The is_fault method tests whether the data is a Venus::Fault object using "is_fault" in Venus.

Since 4.15

is_fault example 1
  # given: synopsis
  package main;
  use Venus::Fault;
  my $is_fault = $test->is_fault(Venus::Fault->new, 'valid fault');
  # true
    

  is_filehandle(any $data, string @args) (boolean)

The is_filehandle method tests whether the data is a file handle using "is_filehandle" in Venus.

Since 4.15

is_filehandle example 1
  # given: synopsis
  package main;
  open(my $fh, '<', 't/Venus_Test.t');
  my $is_filehandle = $test->is_filehandle($fh, 'valid filehandle');
  # true
    

  is_float(any $data, string @args) (boolean)

The is_float method tests whether the data is a float using "is_float" in Venus.

Since 4.15

is_float example 1
  # given: synopsis
  package main;
  my $is_float = $test->is_float(1.5, 'valid float');
  # true
    

  is_glob(any $data, string @args) (boolean)

The is_glob method tests whether the data is a glob reference using "is_glob" in Venus.

Since 4.15

is_glob example 1
  # given: synopsis
  package main;
  my $is_glob = $test->is_glob(\*STDOUT, 'valid glob');
  # true
    

  is_hashref(any $data, string @args) (boolean)

The is_hashref method tests whether the data is a hashref using "is_hashref" in Venus.

Since 4.15

is_hashref example 1
  # given: synopsis
  package main;
  my $is_hashref = $test->is_hashref({a=>1}, 'valid hashref');
  # true
    

  is_number(any $data, string @args) (boolean)

The is_number method tests whether the data is a number using "is_number" in Venus.

Since 4.15

is_number example 1
  # given: synopsis
  package main;
  my $is_number = $test->is_number(123, 'valid number');
  # true
    

  is_object(any $data, string @args) (boolean)

The is_object method tests whether the data is an object using "is_object" in Venus.

Since 4.15

is_object example 1
  # given: synopsis
  package main;
  my $is_object = $test->is_object(bless({}), 'valid object');
  # true
    

  is_package(any $data, string @args) (boolean)

The is_package method tests whether the data is a package name using "is_package" in Venus.

Since 4.15

is_package example 1
  # given: synopsis
  package main;
  my $is_package = $test->is_package('Venus::Test', 'valid package');
  # true
    

  is_reference(any $data, string @args) (boolean)

The is_reference method tests whether the data is a reference using "is_reference" in Venus.

Since 4.15

is_reference example 1
  # given: synopsis
  package main;
  my $is_reference = $test->is_reference([], 'valid reference');
  # true
    

  is_regexp(any $data, string @args) (boolean)

The is_regexp method tests whether the data is a regexp using "is_regexp" in Venus.

Since 4.15

is_regexp example 1
  # given: synopsis
  package main;
  my $is_regexp = $test->is_regexp(qr/test/, 'valid regexp');
  # true
    

  is_scalarref(any $data, string @args) (boolean)

The is_scalarref method tests whether the data is a scalar reference using "is_scalarref" in Venus.

Since 4.15

is_scalarref example 1
  # given: synopsis
  package main;
  my $scalar = 'hello';
  my $is_scalarref = $test->is_scalarref(\$scalar, 'valid scalarref');
  # true
    

  is_string(any $data, string @args) (boolean)

The is_string method tests whether the data is a string using "is_string" in Venus.

Since 4.15

is_string example 1
  # given: synopsis
  package main;
  my $is_string = $test->is_string('hello', 'valid string');
  # true
    

  is_true(any $data, string @args) (boolean)

The is_true method tests whether the data is a true value using "is_true" in Venus.

Since 4.15

is_true example 1
  # given: synopsis
  package main;
  my $is_true = $test->is_true(1, 'valid true');
  # true
    

  is_undef(any $data, string @args) (boolean)

The is_undef method tests whether the data is undef using "is_undef" in Venus.

Since 4.15

is_undef example 1
  # given: synopsis
  package main;
  my $is_undef = $test->is_undef(undef, 'valid undef');
  # true
    

  is_value(any $data, string @args) (boolean)

The is_value method tests whether the data is a defined value using "is_value" in Venus.

Since 4.15

is_value example 1
  # given: synopsis
  package main;
  my $is_value = $test->is_value('hello', 'valid value');
  # true
    

  is_yesno(any $data, string @args) (boolean)

The is_yesno method tests whether the data is a yes/no value using "is_yesno" in Venus.

Since 4.15

is_yesno example 1
  # given: synopsis
  package main;
  my $is_yesno = $test->is_yesno(1, 'valid yesno');
  # true
    

  isnt(any $data1, any $data2, string $description) (any)

The isnt method tests for inequality using "isnt" in Test::More.

Since 4.15

isnt example 1
  # given: synopsis
  package main;
  my $isnt = $test->isnt('hello', 'world', 'strings differ');
  # ()
    

  isnt_arrayref(any $data, string @args) (boolean)

The isnt_arrayref method tests whether the data is not an arrayref.

Since 4.15

isnt_arrayref example 1
  # given: synopsis
  package main;
  my $isnt_arrayref = $test->isnt_arrayref({}, 'not an arrayref');
  # true
    

  isnt_blessed(any $data, string @args) (boolean)

The isnt_blessed method tests whether the data is not a blessed object.

Since 4.15

isnt_blessed example 1
  # given: synopsis
  package main;
  my $isnt_blessed = $test->isnt_blessed('string', 'not blessed');
  # true
    

  isnt_boolean(any $data, string @args) (boolean)

The isnt_boolean method tests whether the data is not a boolean.

Since 4.15

isnt_boolean example 1
  # given: synopsis
  package main;
  my $isnt_boolean = $test->isnt_boolean('string', 'not boolean');
  # true
    

  isnt_coderef(any $data, string @args) (boolean)

The isnt_coderef method tests whether the data is not a coderef.

Since 4.15

isnt_coderef example 1
  # given: synopsis
  package main;
  my $isnt_coderef = $test->isnt_coderef('string', 'not coderef');
  # true
    

  isnt_dirhandle(any $data, string @args) (boolean)

The isnt_dirhandle method tests whether the data is not a directory handle.

Since 4.15

isnt_dirhandle example 1
  # given: synopsis
  package main;
  my $isnt_dirhandle = $test->isnt_dirhandle('string', 'not dirhandle');
  # true
    

  isnt_enum(any $data, arrayref | hashref $data, string @args) (boolean)

The isnt_enum method tests whether the data is not an enum.

Since 4.15

isnt_enum example 1
  # given: synopsis
  package main;
  my $isnt_enum = $test->isnt_enum('light', [], 'not in enum');
  # true
    

  isnt_error(any $data, string @args) (boolean)

The isnt_error method tests whether the data is not a Venus::Error object.

Since 4.15

isnt_error example 1
  # given: synopsis
  package main;
  my $isnt_error = $test->isnt_error('string', 'not error');
  # true
    

  isnt_false(any $data, string @args) (boolean)

The isnt_false method tests whether the data is not a false value.

Since 4.15

isnt_false example 1
  # given: synopsis
  package main;
  my $isnt_false = $test->isnt_false(1, 'not false');
  # true
    

  isnt_fault(any $data, string @args) (boolean)

The isnt_fault method tests whether the data is not a Venus::Fault object.

Since 4.15

isnt_fault example 1
  # given: synopsis
  package main;
  my $isnt_fault = $test->isnt_fault('string', 'not fault');
  # true
    

  isnt_filehandle(any $data, string @args) (boolean)

The isnt_filehandle method tests whether the data is not a file handle.

Since 4.15

isnt_filehandle example 1
  # given: synopsis
  package main;
  my $isnt_filehandle = $test->isnt_filehandle('string', 'not filehandle');
  # true
    

  isnt_float(any $data, string @args) (boolean)

The isnt_float method tests whether the data is not a float.

Since 4.15

isnt_float example 1
  # given: synopsis
  package main;
  my $isnt_float = $test->isnt_float(123, 'not float');
  # true
    

  isnt_glob(any $data, string @args) (boolean)

The isnt_glob method tests whether the data is not a glob reference.

Since 4.15

isnt_glob example 1
  # given: synopsis
  package main;
  my $isnt_glob = $test->isnt_glob('string', 'not glob');
  # true
    

  isnt_hashref(any $data, string @args) (boolean)

The isnt_hashref method tests whether the data is not a hashref.

Since 4.15

isnt_hashref example 1
  # given: synopsis
  package main;
  my $isnt_hashref = $test->isnt_hashref([], 'not a hashref');
  # true
    

  isnt_number(any $data, string @args) (boolean)

The isnt_number method tests whether the data is not a number.

Since 4.15

isnt_number example 1
  # given: synopsis
  package main;
  my $isnt_number = $test->isnt_number('string', 'not number');
  # true
    

  isnt_object(any $data, string @args) (boolean)

The isnt_object method tests whether the data is not an object.

Since 4.15

isnt_object example 1
  # given: synopsis
  package main;
  my $isnt_object = $test->isnt_object('string', 'not object');
  # true
    

  isnt_package(any $data, string @args) (boolean)

The isnt_package method tests whether the data is not a package name.

Since 4.15

isnt_package example 1
  # given: synopsis
  package main;
  my $isnt_package = $test->isnt_package([], 'not package');
  # true
    

  isnt_reference(any $data, string @args) (boolean)

The isnt_reference method tests whether the data is not a reference.

Since 4.15

isnt_reference example 1
  # given: synopsis
  package main;
  my $isnt_reference = $test->isnt_reference('string', 'not reference');
  # true
    

  isnt_regexp(any $data, string @args) (boolean)

The isnt_regexp method tests whether the data is not a regexp.

Since 4.15

isnt_regexp example 1
  # given: synopsis
  package main;
  my $isnt_regexp = $test->isnt_regexp('string', 'not regexp');
  # true
    

  isnt_scalarref(any $data, string @args) (boolean)

The isnt_scalarref method tests whether the data is not a scalar reference.

Since 4.15

isnt_scalarref example 1
  # given: synopsis
  package main;
  my $isnt_scalarref = $test->isnt_scalarref('string', 'not scalarref');
  # true
    

  isnt_string(any $data, string @args) (boolean)

The isnt_string method tests whether the data is not a string.

Since 4.15

isnt_string example 1
  # given: synopsis
  package main;
  my $isnt_string = $test->isnt_string([], 'not string');
  # true
    

  isnt_true(any $data, string @args) (boolean)

The isnt_true method tests whether the data is not a true value.

Since 4.15

isnt_true example 1
  # given: synopsis
  package main;
  my $isnt_true = $test->isnt_true(0, 'not true');
  # true
    

  isnt_undef(any $data, string @args) (boolean)

The isnt_undef method tests whether the data is not undef.

Since 4.15

isnt_undef example 1
  # given: synopsis
  package main;
  my $isnt_undef = $test->isnt_undef('string', 'not undef');
  # true
    

  isnt_value(any $data, string @args) (boolean)

The isnt_value method tests whether the data is not a defined value.

Since 4.15

isnt_value example 1
  # given: synopsis
  package main;
  my $isnt_value = $test->isnt_value(undef, 'not value');
  # true
    

  isnt_yesno(any $data, string @args) (boolean)

The isnt_yesno method tests whether the data is not a yes/no value.

Since 4.15

isnt_yesno example 1
  # given: synopsis
  package main;
  my $isnt_yesno = $test->isnt_yesno('string', 'not yesno');
  # true
    

  lfile() (Venus::Path)

The lfile method returns the path to a lib file for the package being tested.

Since 4.15

lfile example 1
  # given: synopsis
  package main;
  my $lfile = $test->lfile;
  # "lib/Venus/Test.pm"
    

  like(string $data, string | Venus::Regexp $match, string $description) (any)

The like method dispatches to the "like" in Test::More operation and returns the result.

Since 4.15

like example 1
  # given: synopsis
  package main;
  my $like = $test->like('hello world', 'world', 'example-1 like passed');
  # true
    
like example 2
  # given: synopsis
  package main;
  my $like = $test->like('hello world', qr/world/, 'example-1 like passed');
  # true
    

  mktemp_dir() (Venus::Path)

The mktemp_dir method creates and returns a temporary directory as a Venus::Path object.

Since 4.15

mktemp_dir example 1
  # given: synopsis
  package main;
  my $mktemp_dir = $test->mktemp_dir;
  # bless(..., "Venus::Path")
    

  mktemp_file() (Venus::Path)

The mktemp_file method creates and returns a temporary file as a Venus::Path object.

Since 4.15

mktemp_file example 1
  # given: synopsis
  package main;
  my $mktemp_file = $test->mktemp_file;
  # bless(..., "Venus::Path")
    

  new(any @args) (Venus::Test)

The new method constructs an instance of the package.

Since 4.15

new example 1
  package main;
  use Venus::Test;
  my $new = Venus::Test->new;
  # bless(..., "Venus::Test")
    
new example 2
  package main;
  use Venus::Test;
  my $new = Venus::Test->new('t/Venus_Test.t');
  # bless(..., "Venus::Test")
    
new example 3
  package main;
  use Venus::Test;
  my $new = Venus::Test->new(file => 't/Venus_Test.t');
  # bless(..., "Venus::Test")
    
  package main;
  use Venus::Test;
  my $test = Venus::Test->new('t/data/no-name.t');
  # Error! (on.new)
    

  note(string @messages) (any)

The note method prints debugging messages using "diag" in Test::More and "explain" in Test::More.

Since 4.15

note example 1
  # given: synopsis
  package main;
  my $note = $test->note('Example note...');
  # ()
    

  only_if(string | coderef $code) (Venus::Test)

The only_if method creates a gate that only runs subtests if the callback returns a truthy value.

Since 4.15

only_if example 1
  # given: synopsis
  package main;
  my $gate = $test->only_if('os_is_mac');
  # bless(..., "Venus::Test")
    

  os() (Venus::Os)

The os method returns a Venus::Os object.

Since 4.15

os example 1
  # given: synopsis
  package main;
  my $os = $test->os;
  # bless(..., "Venus::Os")
    

  os_is_bsd() (boolean)

The os_is_bsd method returns true if the operating system is BSD.

Since 4.15

os_is_bsd example 1
  # given: synopsis
  package main;
  my $os_is_bsd = $test->os_is_bsd;
  # true
    

  os_is_cyg() (boolean)

The os_is_cyg method returns true if the operating system is Cygwin.

Since 4.15

os_is_cyg example 1
  # given: synopsis
  package main;
  my $os_is_cyg = $test->os_is_cyg;
  # true
    

  os_is_dos() (boolean)

The os_is_dos method returns true if the operating system is DOS.

Since 4.15

os_is_dos example 1
  # given: synopsis
  package main;
  my $os_is_dos = $test->os_is_dos;
  # true
    

  os_is_lin() (boolean)

The os_is_lin method returns true if the operating system is Linux.

Since 4.15

os_is_lin example 1
  # given: synopsis
  package main;
  my $os_is_lin = $test->os_is_lin;
  # true
    

  os_is_mac() (boolean)

The os_is_mac method returns true if the operating system is macOS.

Since 4.15

os_is_mac example 1
  # given: synopsis
  package main;
  my $os_is_mac = $test->os_is_mac;
  # true
    

  os_is_non() (boolean)

The os_is_non method returns true if the operating system is non-Unix.

Since 4.15

os_is_non example 1
  # given: synopsis
  package main;
  my $os_is_non = $test->os_is_non;
  # true
    

  os_is_sun() (boolean)

The os_is_sun method returns true if the operating system is Solaris.

Since 4.15

os_is_sun example 1
  # given: synopsis
  package main;
  my $os_is_sun = $test->os_is_sun;
  # true
    

  os_is_vms() (boolean)

The os_is_vms method returns true if the operating system is VMS.

Since 4.15

os_is_vms example 1
  # given: synopsis
  package main;
  my $os_is_vms = $test->os_is_vms;
  # true
    

  os_is_win() (boolean)

The os_is_win method returns true if the operating system is Windows.

Since 4.15

os_is_win example 1
  # given: synopsis
  package main;
  my $os_is_win = $test->os_is_win;
  # true
    

  os_isnt_bsd() (boolean)

The os_isnt_bsd method returns true if the operating system is not BSD.

Since 4.15

os_isnt_bsd example 1
  # given: synopsis
  package main;
  my $os_isnt_bsd = $test->os_isnt_bsd;
  # true
    

  os_isnt_cyg() (boolean)

The os_isnt_cyg method returns true if the operating system is not Cygwin.

Since 4.15

os_isnt_cyg example 1
  # given: synopsis
  package main;
  my $os_isnt_cyg = $test->os_isnt_cyg;
  # true
    

  os_isnt_dos() (boolean)

The os_isnt_dos method returns true if the operating system is not DOS.

Since 4.15

os_isnt_dos example 1
  # given: synopsis
  package main;
  my $os_isnt_dos = $test->os_isnt_dos;
  # true
    

  os_isnt_lin() (boolean)

The os_isnt_lin method returns true if the operating system is not Linux.

Since 4.15

os_isnt_lin example 1
  # given: synopsis
  package main;
  my $os_isnt_lin = $test->os_isnt_lin;
  # true
    

  os_isnt_mac() (boolean)

The os_isnt_mac method returns true if the operating system is not macOS.

Since 4.15

os_isnt_mac example 1
  # given: synopsis
  package main;
  my $os_isnt_mac = $test->os_isnt_mac;
  # true
    

  os_isnt_non() (boolean)

The os_isnt_non method returns true if the operating system is not non-Unix.

Since 4.15

os_isnt_non example 1
  # given: synopsis
  package main;
  my $os_isnt_non = $test->os_isnt_non;
  # true
    

  os_isnt_sun() (boolean)

The os_isnt_sun method returns true if the operating system is not Solaris.

Since 4.15

os_isnt_sun example 1
  # given: synopsis
  package main;
  my $os_isnt_sun = $test->os_isnt_sun;
  # true
    

  os_isnt_vms() (boolean)

The os_isnt_vms method returns true if the operating system is not VMS.

Since 4.15

os_isnt_vms example 1
  # given: synopsis
  package main;
  my $os_isnt_vms = $test->os_isnt_vms;
  # true
    

  os_isnt_win() (boolean)

The os_isnt_win method returns true if the operating system is not Windows.

Since 4.15

os_isnt_win example 1
  # given: synopsis
  package main;
  my $os_isnt_win = $test->os_isnt_win;
  # true
    

  pass(any $data, string $description) (any)

The pass method dispatches to the "ok" in Test::More operation expecting the first argument to be truthy and returns the result.

Since 4.15

pass example 1
  # given: synopsis
  package main;
  my $fail = $test->pass(1, 'example-1 pass passed');
  # true
    

  patch(string $name, coderef $code) (coderef)

The patch method monkey-patches the named subroutine and returns the original coderef.

Since 4.15

patch example 1
  # given: synopsis
  package main;
  my $orig = $test->patch('pass', sub {
    return 'patched';
  });
  # sub {...}
  $test->unpatch;
  # bless(..., "Venus::Space")
  $orig
  # sub {...}
    

  path(string $path) (Venus::Path)

The path method returns a Venus::Path object for the given path. Defaults to the test file.

Since 4.15

path example 1
  # given: synopsis
  package main;
  my $path = $test->path('t/Venus_Test.t');
  # bless(..., "Venus::Path")
    

  pfile() (Venus::Path)

The pfile method returns the path to a pod file for the package being tested.

Since 4.15

pfile example 1
  # given: synopsis
  package main;
  my $pfile = $test->pfile;
  # "lib/Venus/Test.pod"
    

  render(string $file) (Venus::Path)

The render method reads the test specification and generates perlpod documentation and returns a Venus::Path object for the filename provided.

Since 4.15

render example 1
  # given: synopsis
  package main;
  my $path = $test->render('t/path/pod/test');
  # bless(..., "Venus::Path")
    

  same(any $data1, any $data2, string $description) (any)

The same method dispatches to the "is_deeply" in Test::More operation and returns the result.

Since 4.15

same example 1
  # given: synopsis
  package main;
  my $same = $test->same({1..4}, {1..4}, 'example-1 same passed');
  # true
    

  skip(string $reason) (any)

The skip method dispatches to the "skip" in Test::More operation with the "plan_all" option and returns the result.

Since 4.15

skip example 1
  # given: synopsis
  package main;
  my $skip = $test->skip('Unsupported');
  # true
    

  skip_if(string | coderef $code) (Venus::Test)

The skip_if method creates a gate that only runs subtests if the callback returns a falsy value.

Since 4.15

skip_if example 1
  # given: synopsis
  package main;
  my $gate = $test->skip_if('os_is_mac');
  # bless(..., "Venus::Test")
    

  space(string $package) (Venus::Space)

The space method returns a Venus::Space object for the package being tested, or for the package name provided.

Since 4.15

space example 1
  # given: synopsis
  package main;
  my $space = $test->space;
  # bless(..., "Venus::Space")
    
space example 2
  # given: synopsis
  package main;
  my $space = $test->space('Venus::Path');
  # bless(..., "Venus::Space")
    

  subtest(string $name, coderef $code) (any)

The subtest method runs a subtest using "subtest" in Test::More. Enclosed tests maybe be made conditional using a "gate", e.g., "only_if" and "skip_if".

Since 4.15

subtest example 1
  # given: synopsis
  package main;
  my $subtest = $test->subtest('test something', sub {
    $test->pass('it works');
  });
  # ()
    

  text() (Venus::Text::Pod)

The text method returns a Venus::Text::Pod object using "file" for parsing the test specification.

Since 4.15

text example 1
  # given: synopsis
  package main;
  my $text = $test->text;
  # bless(..., "Venus::Text::Pod")
    

  tfile() (Venus::Path)

The tfile method returns the path to a test file for the package being tested.

Since 4.15

tfile example 1
  # given: synopsis
  package main;
  my $tfile = $test->tfile;
  # "t/Venus_Test.t"
    

  type(any $data, string $expression, string @args) (boolean)

The type method performs type assertion using Venus::Type and tests if the data matches the type expression.

Since 4.15

type example 1
  # given: synopsis
  package main;
  my $type = $test->type([1,2,3], 'arrayref', 'valid arrayref');
  # true
    

  unlike(string $data, regexp $regex, string $description) (any)

The unlike method tests that a string doesn't match a regex using "unlike" in Test::More.

Since 4.15

unlike example 1
  # given: synopsis
  package main;
  my $unlike = $test->unlike('hello', qr/world/, 'does not match');
  # ()
    

  unpatch(string @names) (Venus::Space)

The unpatch method undoes patches by name, or undoes all patches if no names are provided.

Since 4.15

unpatch example 1
  # given: synopsis
  package main;
  $test->patch('pass', sub {'patched'});
  # sub {...}
  my $unpatch = $test->unpatch('pass');
  # bless(..., "Venus::Space")
    

This package provides the following features:

  collect(string $name, any @args) (any)
    

The collect method dispatches to the "collect_data_for_${name}" method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my ($collect) = $test->collect('name');
  # "Venus::Test"
    

example 2

  # given: synopsis
  package main;
  my $collect = $test->collect('name');
  # ["Venus::Test"]
    
  collect_data_for_abstract() (arrayref)
    

The collect_data_for_abstract method uses "data" to fetch data for the "abstract" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =abstract
  #
  # Example Test Documentation
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_abstract = $test->collect_data_for_abstract;
  # ["Example Test Documentation"]
    

example 2

  # =abstract
  #
  # Example Test Documentation
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_abstract) = $test->collect_data_for_abstract;
  # "Example Test Documentation"
    
  collect_data_for_attribute(string $name) (arrayref)
    

The collect_data_for_attribute method uses "data" to fetch data for the "attribute $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_attribute = $test->collect_data_for_attribute('name');
  # ["The name attribute is read-write, optional, and holds a string."]
    

example 2

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_attribute) = $test->collect_data_for_attribute('name');
  # "The name attribute is read-write, optional, and holds a string."
    
  collect_data_for_authors() (arrayref)
    

The collect_data_for_authors method uses "data" to fetch data for the "authors" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =authors
  #
  # Awncorp, C<awncorp@cpan.org>
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_authors = $test->collect_data_for_authors;
  # ["Awncorp, C<awncorp@cpan.org>"]
    

example 2

  # =authors
  #
  # Awncorp, C<awncorp@cpan.org>
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_authors) = $test->collect_data_for_authors;
  # "Awncorp, C<awncorp@cpan.org>"
    
  collect_data_for_description() (arrayref)
    

The collect_data_for_description method uses "data" to fetch data for the "description" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =description
  #
  # This package provides an example class.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_description = $test->collect_data_for_description;
  # ["This package provides an example class."]
    

example 2

  # =description
  #
  # This package provides an example class.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_description) = $test->collect_data_for_description;
  # "This package provides an example class."
    
  collect_data_for_encoding() (arrayref)
    

The collect_data_for_encoding method uses "data" to fetch data for the "encoding" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =encoding
  #
  # utf8
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_encoding = $test->collect_data_for_encoding;
  # ["UTF8"]
    

example 2

  # =encoding
  #
  # utf8
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_encoding) = $test->collect_data_for_encoding;
  # "UTF8"
    
  collect_data_for_error(string $name) (arrayref)
    

The collect_data_for_error method uses "data" to fetch data for the error $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =error error_on_unknown
  #
  # This package may raise an error_on_unknown error.
  #
  # =cut
  #
  # =example-1 error_on_unknown
  #
  #   # given: synopsis
  #
  #   my $error = $example->catch('error', {
  #     with => 'error_on_unknown',
  #   });
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_error = $test->collect_data_for_error('error_on_unknown');
  # ["This package may raise an error_on_unknown error."]
    

example 2

  # =error error_on_unknown
  #
  # This package may raise an error_on_unknown error.
  #
  # =cut
  #
  # =example-1 error_on_unknown
  #
  #   # given: synopsis
  #
  #   my $error = $example->catch('error', {
  #     with => 'error_on_unknown',
  #   });
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_error) = $test->collect_data_for_error('error_on_unknown');
  # "This package may raise an error_on_unknown error."
    
  collect_data_for_example(number $numberm string $name) (arrayref)
    

The collect_data_for_example method uses "data" to fetch data for the "example-$number $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_example = $test->collect_data_for_example(1, 'name');
  # ['  # given: synopsis', '  my $name = $example->name;', '  # "..."']
    

example 2

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my @collect_data_for_example = $test->collect_data_for_example(1, 'name');
  # ('  # given: synopsis', '  my $name = $example->name;', '  # "..."')
    
  collect_data_for_feature(string $name) (arrayref)
    

The collect_data_for_feature method uses "data" to fetch data for the "feature $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =feature noop
  #
  # This package is no particularly useful features.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_feature = $test->collect_data_for_feature('noop');
  # ["This package is no particularly useful features."]
    

example 2

  # =feature noop
  #
  # This package is no particularly useful features.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_feature) = $test->collect_data_for_feature('noop');
  # "This package is no particularly useful features."
    
  collect_data_for_function(string $name) (arrayref)
    

The collect_data_for_function method uses "data" to fetch data for the "function $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =function eg
  #
  # The eg function returns a new instance of Example.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $example = eg();
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_function = $test->collect_data_for_function('eg');
  # ["The eg function returns a new instance of Example."]
    

example 2

  # =function eg
  #
  # The eg function returns a new instance of Example.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $example = eg();
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_function) = $test->collect_data_for_function('eg');
  # "The eg function returns a new instance of Example."
    
  collect_data_for_includes() (arrayref)
    

The collect_data_for_includes method uses "data" to fetch data for the "includes" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =includes
  #
  # function: eg
  #
  # method: prepare
  # method: execute
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_includes = $test->collect_data_for_includes;
  # ["function: eg", "method: prepare", "method: execute"]
    

example 2

  # =includes
  #
  # function: eg
  #
  # method: prepare
  # method: execute
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my @collect_data_for_includes = $test->collect_data_for_includes;
  # ("function: eg", "method: prepare", "method: execute")
    
  collect_data_for_inherits() (arrayref)
    

The collect_data_for_inherits method uses "data" to fetch data for the "inherits" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =inherits
  #
  # Venus::Core::Class
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_inherits = $test->collect_data_for_inherits;
  # ["Venus::Core::Class"]
    

example 2

  # =inherits
  #
  # Venus::Core::Class
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_inherits) = $test->collect_data_for_inherits;
  # "Venus::Core::Class"
    
  collect_data_for_integrates() (arrayref)
    

The collect_data_for_integrates method uses "data" to fetch data for the "integrates" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =integrates
  #
  # Venus::Role::Catchable
  # Venus::Role::Throwable
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_integrates = $test->collect_data_for_integrates;
  # ["Venus::Role::Catchable\nVenus::Role::Throwable"]
    

example 2

  # =integrates
  #
  # Venus::Role::Catchable
  # Venus::Role::Throwable
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_integrates) = $test->collect_data_for_integrates;
  # "Venus::Role::Catchable\nVenus::Role::Throwable"
    
  collect_data_for_layout() (arrayref)
    

The collect_data_for_layout method uses "data" to fetch data for the "layout" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =layout
  #
  # encoding
  # name
  # synopsis
  # description
  # attributes: attribute
  # authors
  # license
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_layout = $test->collect_data_for_layout;
  # ["encoding\nname\nsynopsis\ndescription\nattributes: attribute\nauthors\nlicense"]
    

example 2

  # =layout
  #
  # encoding
  # name
  # synopsis
  # description
  # attributes: attribute
  # authors
  # license
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_layout) = $test->collect_data_for_layout;
  # "encoding\nname\nsynopsis\ndescription\nattributes: attribute\nauthors\nlicense"
    
  collect_data_for_libraries() (arrayref)
    

The collect_data_for_libraries method uses "data" to fetch data for the "libraries" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =libraries
  #
  # Venus::Check
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_libraries = $test->collect_data_for_libraries;
  # ["Venus::Check"]
    

example 2

  # =libraries
  #
  # Venus::Check
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_libraries) = $test->collect_data_for_libraries;
  # "Venus::Check"
    
  collect_data_for_license() (arrayref)
    

The collect_data_for_license method uses "data" to fetch data for the "license" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =license
  #
  # No license granted.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_license = $test->collect_data_for_license;
  # ["No license granted."]
    

example 2

  # =license
  #
  # No license granted.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_license) = $test->collect_data_for_license;
  # "No license granted."
    
  collect_data_for_message(string $name) (arrayref)
    

The collect_data_for_message method uses "data" to fetch data for the "message $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =message accept
  #
  # The accept message represents acceptance.
  #
  # =cut
  #
  # =example-1 accept
  #
  #   # given: synopsis
  #
  #   my $accept = $example->accept;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_message = $test->collect_data_for_message('accept');
  # ["The accept message represents acceptance."]
    

example 2

  # =message accept
  #
  # The accept message represents acceptance.
  #
  # =cut
  #
  # =example-1 accept
  #
  #   # given: synopsis
  #
  #   my $accept = $example->accept;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_message) = $test->collect_data_for_message('accept');
  # "The accept message represents acceptance."
    
  collect_data_for_metadata(string $name) (arrayref)
    

The collect_data_for_metadata method uses "data" to fetch data for the "metadata $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =method prepare
  #
  # The prepare method prepares for execution.
  #
  # =cut
  #
  # =metadata prepare
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 prepare
  #
  #   # given: synopsis
  #
  #   my $prepare = $example->prepare;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_metadata = $test->collect_data_for_metadata('prepare');
  # ["{since => 1.2.3}"]
    

example 2

  # =method prepare
  #
  # The prepare method prepares for execution.
  #
  # =cut
  #
  # =metadata prepare
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 prepare
  #
  #   # given: synopsis
  #
  #   my $prepare = $example->prepare;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_metadata) = $test->collect_data_for_metadata('prepare');
  # "{since => 1.2.3}"
    
  collect_data_for_method(string $name) (arrayref)
    

The collect_data_for_method method uses "data" to fetch data for the "method $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =method execute
  #
  # The execute method executes the logic.
  #
  # =cut
  #
  # =metadata execute
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 execute
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_method = $test->collect_data_for_method('execute');
  # ["The execute method executes the logic."]
    

example 2

  # =method execute
  #
  # The execute method executes the logic.
  #
  # =cut
  #
  # =metadata execute
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 execute
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_method) = $test->collect_data_for_method('execute');
  # "The execute method executes the logic."
    
  collect_data_for_name() (arrayref)
    

The collect_data_for_name method uses "data" to fetch data for the "name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =name
  # Example
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_name = $test->collect_data_for_name;
  # ["Example"]
    

example 2

  # =name
  # Example
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_name) = $test->collect_data_for_name;
  # "Example"
    
  collect_data_for_operator(string $name) (arrayref)
    

The collect_data_for_operator method uses "data" to fetch data for the "operator $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =operator ("")
  #
  # This package overloads the C<""> operator.
  #
  # =cut
  #
  # =example-1 ("")
  #
  #   # given: synopsis
  #
  #   my $string = "$example";
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_operator = $test->collect_data_for_operator('("")');
  # ['This package overloads the C<""> operator.']
    

example 2

  # =operator ("")
  #
  # This package overloads the C<""> operator.
  #
  # =cut
  #
  # =example-1 ("")
  #
  #   # given: synopsis
  #
  #   my $string = "$example";
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_operator) = $test->collect_data_for_operator('("")');
  # 'This package overloads the C<""> operator.'
    
  collect_data_for_partials() (arrayref)
    

The collect_data_for_partials method uses "data" to fetch data for the "partials" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =partials
  #
  # t/path/to/other.t: present: authors
  # t/path/to/other.t: present: license
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_partials = $test->collect_data_for_partials;
  # ["t/path/to/other.t: present: authors\nt/path/to/other.t: present: license"]
    

example 2

  # =partials
  #
  # t/path/to/other.t: present: authors
  # t/path/to/other.t: present: license
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_partials) = $test->collect_data_for_partials;
  # "t/path/to/other.t: present: authors\nt/path/to/other.t: present: license"
    
  collect_data_for_project() (arrayref)
    

The collect_data_for_project method uses "data" to fetch data for the "project" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =project
  #
  # https://github.com/awncorp/example
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_project = $test->collect_data_for_project;
  # ["https://github.com/awncorp/example"]
    

example 2

  # =project
  #
  # https://github.com/awncorp/example
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_project) = $test->collect_data_for_project;
  # "https://github.com/awncorp/example"
    
  collect_data_for_signature(string $name) (arrayref)
    

The collect_data_for_signature method uses "data" to fetch data for the "signature $name" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =method execute
  #
  # The execute method executes the logic.
  #
  # =cut
  #
  # =signature execute
  #
  #   execute() (boolean)
  #
  # =cut
  #
  # =metadata execute
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 execute
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_signature = $test->collect_data_for_signature('execute');
  # ["  execute() (boolean)"]
    

example 2

  # =method execute
  #
  # The execute method executes the logic.
  #
  # =cut
  #
  # =signature execute
  #
  #   execute() (boolean)
  #
  # =cut
  #
  # =metadata execute
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 execute
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_signature) = $test->collect_data_for_signature('execute');
  # "  execute() (boolean)"
    
  collect_data_for_synopsis() (arrayref)
    

The collect_data_for_synopsis method uses "data" to fetch data for the "synopsis" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =synopsis
  #
  #   use Example;
  #
  #   my $example = Example->new;
  #
  #   # bless(..., "Example")
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_synopsis = $test->collect_data_for_synopsis;
  # ['  use Example;', '  my $example = Example->new;', '  # bless(..., "Example")']
    

example 2

  # =synopsis
  #
  #   use Example;
  #
  #   my $example = Example->new;
  #
  #   # bless(..., "Example")
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my @collect_data_for_synopsis = $test->collect_data_for_synopsis;
  # ('  use Example;', '  my $example = Example->new;', '  # bless(..., "Example")')
    
  collect_data_for_tagline() (arrayref)
    

The collect_data_for_tagline method uses "data" to fetch data for the "tagline" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =tagline
  #
  # Example Class
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_tagline = $test->collect_data_for_tagline;
  # ["Example Class"]
    

example 2

  # =tagline
  #
  # Example Class
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_tagline) = $test->collect_data_for_tagline;
  # "Example Class"
    
  collect_data_for_version() (arrayref)
    

The collect_data_for_version method uses "data" to fetch data for the "version" section and returns the data. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # =version
  #
  # 1.2.3
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $collect_data_for_version = $test->collect_data_for_version;
  # ["1.2.3"]
    

example 2

  # =version
  #
  # 1.2.3
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my ($collect_data_for_version) = $test->collect_data_for_version;
  # "1.2.3"
    
  data() (Venus::Text::Pod)
    

The data method returns a Venus::Text::Pod object using "file" for parsing the test specification.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $data = $test->data;
  # bless(..., "Venus::Text::Pod")
    
  execute(string $name, any @args) (boolean)
    

The execute method dispatches to the "execute_data_for_${name}" method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $execute = $test->execute('name');
  # true
    

example 2

  # given: synopsis
  package main;
  my $execute = $test->execute('name', sub {
    my ($data) = @_;
    my $result = $data->[0] eq 'Venus::Test' ? true : false;
    $self->pass($result, 'name set as Venus::Test');
    return $result;
  });
  # true
    
  execute_test_for_abstract() (arrayref)
    

The execute_test_for_abstract method tests a documentation block for the "abstract" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =abstract
  #
  # Example Test Documentation
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_abstract = $test->execute_test_for_abstract;
  # true
    
  execute_test_for_attribute(string $name) (arrayref)
    

The execute_test_for_attribute method tests a documentation block for the "attribute $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_attribute = $test->execute_test_for_attribute('name');
  # true
    
  execute_test_for_authors() (arrayref)
    

The execute_test_for_authors method tests a documentation block for the "authors" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =authors
  #
  # Awncorp, C<awncorp@cpan.org>
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_authors = $test->execute_test_for_authors;
  # true
    
  execute_test_for_description() (arrayref)
    

The execute_test_for_description method tests a documentation block for the "description" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =description
  #
  # This package provides an example class.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_description = $test->execute_test_for_description;
  # true
    
  execute_test_for_encoding() (arrayref)
    

The execute_test_for_encoding method tests a documentation block for the "encoding" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =encoding
  #
  # utf8
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_encoding = $test->execute_test_for_encoding;
  # true
    
  execute_test_for_error(string $name) (arrayref)
    

The execute_test_for_error method tests a documentation block for the "error $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =error error_on_unknown
  #
  # This package may raise an error_on_unknown error.
  #
  # =cut
  #
  # =example-1 error_on_unknown
  #
  #   # given: synopsis
  #
  #   my $error = $example->catch('error', {
  #     with => 'error_on_unknown',
  #   });
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_error = $test->execute_test_for_error('error_on_unknown');
  # true
    
  execute_test_for_example(number $numberm string $name) (arrayref)
    

The execute_test_for_example method tests a documentation block for the "example-$number $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_example = $test->execute_test_for_example(1, 'name');
  # true
    
  execute_test_for_feature(string $name) (arrayref)
    

The execute_test_for_feature method tests a documentation block for the "feature $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =feature noop
  #
  # This package is no particularly useful features.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_feature = $test->execute_test_for_feature('noop');
  # true
    
  execute_test_for_function(string $name) (arrayref)
    

The execute_test_for_function method tests a documentation block for the "function $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =function eg
  #
  # The eg function returns a new instance of Example.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $example = eg();
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_function = $test->execute_test_for_function('eg');
  # true
    
  execute_test_for_includes() (arrayref)
    

The execute_test_for_includes method tests a documentation block for the "includes" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =includes
  #
  # function: eg
  #
  # method: prepare
  # method: execute
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_includes = $test->execute_test_for_includes;
  # true
    
  execute_test_for_inherits() (arrayref)
    

The execute_test_for_inherits method tests a documentation block for the "inherits" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =inherits
  #
  # Venus::Core::Class
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_inherits = $test->execute_test_for_inherits;
  # true
    
  execute_test_for_integrates() (arrayref)
    

The execute_test_for_integrates method tests a documentation block for the "integrates" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =integrates
  #
  # Venus::Role::Catchable
  # Venus::Role::Throwable
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_integrates = $test->execute_test_for_integrates;
  # true
    
  execute_test_for_layout() (arrayref)
    

The execute_test_for_layout method tests a documentation block for the "layout" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =layout
  #
  # encoding
  # name
  # synopsis
  # description
  # attributes: attribute
  # authors
  # license
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_layout = $test->execute_test_for_layout;
  # true
    
  execute_test_for_libraries() (arrayref)
    

The execute_test_for_libraries method tests a documentation block for the "libraries" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =libraries
  #
  # Venus::Check
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_libraries = $test->execute_test_for_libraries;
  # true
    
  execute_test_for_license() (arrayref)
    

The execute_test_for_license method tests a documentation block for the "license" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =license
  #
  # No license granted.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_license = $test->execute_test_for_license;
  # true
    
  execute_test_for_message(string $name) (arrayref)
    

The execute_test_for_message method tests a documentation block for the "message $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =message accept
  #
  # The accept message represents acceptance.
  #
  # =cut
  #
  # =example-1 accept
  #
  #   # given: synopsis
  #
  #   my $accept = $example->accept;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_message = $test->execute_test_for_message('accept');
  # true
    
  execute_test_for_metadata(string $name) (arrayref)
    

The execute_test_for_metadata method tests a documentation block for the "metadata $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =method prepare
  #
  # The prepare method prepares for execution.
  #
  # =cut
  #
  # =metadata prepare
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 prepare
  #
  #   # given: synopsis
  #
  #   my $prepare = $example->prepare;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_metadata = $test->execute_test_for_metadata('prepare');
  # true
    
  execute_test_for_method(string $name) (arrayref)
    

The execute_test_for_method method tests a documentation block for the "method $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =method execute
  #
  # The execute method executes the logic.
  #
  # =cut
  #
  # =metadata execute
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 execute
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_method = $test->execute_test_for_method('execute');
  # true
    
  execute_test_for_name() (arrayref)
    

The execute_test_for_name method tests a documentation block for the "name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =name
  # Example
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_name = $test->execute_test_for_name;
  # true
    
  execute_test_for_operator(string $name) (arrayref)
    

The execute_test_for_operator method tests a documentation block for the "operator $name" section and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # =operator ("")
  #
  # This package overloads the C<""> operator.
  #
  # =cut
  #
  # =example-1 ("")
  #
  #   # given: synopsis
  #
  #   my $string = "$example";
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_operator = $test->execute_test_for_operator('("")');
  # true
    
  execute_test_for_raise(string $name, string $class, string $id) (arrayref)
    

The execute_test_for_raise method tests a documentation block for the "raise $name $error $id" section and returns the result.

Introduced 4.15

example 1

  # =raise execute Venus::Error on.unknown
  #
  #   # given: synopsis
  #
  #   $example->operation; # throw exception
  #
  #   # Error (on.unknown)
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $execute_test_for_raise = $test->execute_test_for_raise('execute', 'Venus::Error', 'on.unknown');
  # true
    
  more(any @args) (any)
    

The more method dispatches to the Test::More method specified by the first argument and returns its result.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $more = $test->more('ok', true);
  # true
    
  okay(any $data, string $description) (any)
    

The okay method dispatches to the "ok" in Test::More operation and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $okay = $test->okay(1, 'example-1 okay passed');
  # true
    

example 2

  # given: synopsis
  package main;
  my $okay = $test->okay(!0, 'example-1 okay passed');
  # true
    
  okay_can(string $name, string @args) (any)
    

The okay_can method dispatches to the "can_ok" in Test::More operation and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $okay_can = $test->okay_can('Venus::Test', 'diag');
  # true
    
  okay_isa(string $name, string $base) (any)
    

The okay_isa method dispatches to the "isa_ok" in Test::More operation and returns the result.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $okay_isa = $test->okay_isa('Venus::Test', 'Venus::Kind');
  # true
    
  perform(string $name, any @args) (boolean)
    

The perform method dispatches to the "perform_data_for_${name}" method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $data = $test->collect('name');
  my $perform = $test->perform('name', $data);
  # true
    
  perform_test_for_abstract(arrayref $data) (boolean)
    

The perform_data_for_abstract method performs an overridable test for the "abstract" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_abstract {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=abstract content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_abstract;
  my $perform_test_for_abstract = $test->perform_test_for_abstract(
    $data,
  );
  # true
    
  perform_test_for_attribute(string $name, arrayref $data) (boolean)
    

The perform_data_for_attribute method performs an overridable test for the "attribute $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_attribute {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=attribute $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_attribute('name');
  my $perform_test_for_attribute = $test->perform_test_for_attribute(
    'name', $data,
  );
  # true
    
  perform_test_for_authors(arrayref $data) (boolean)
    

The perform_data_for_authors method performs an overridable test for the "authors" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_authors {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=authors content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_authors;
  my $perform_test_for_authors = $test->perform_test_for_authors(
    $data,
  );
  # true
    
  perform_test_for_description(arrayref $data) (boolean)
    

The perform_data_for_description method performs an overridable test for the "description" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_description {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=description content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_description;
  my $perform_test_for_description = $test->perform_test_for_description(
    $data,
  );
  # true
    
  perform_test_for_encoding(arrayref $data) (boolean)
    

The perform_data_for_encoding method performs an overridable test for the "encoding" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_encoding {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=encoding content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_encoding;
  my $perform_test_for_encoding = $test->perform_test_for_encoding(
    $data,
  );
  # true
    
  perform_test_for_error(arrayref $data) (boolean)
    

The perform_data_for_error method performs an overridable test for the "error $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_error {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=error $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_error('error_on_unknown');
  my $perform_test_for_error = $test->perform_test_for_error(
    'error_on_unknown', $data,
  );
  # true
    
  perform_test_for_example(arrayref $data) (boolean)
    

The perform_data_for_example method performs an overridable test for the "example-$number $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_example {
    my ($self, $number, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=example-$number $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_example(1, 'execute');
  my $perform_test_for_example = $test->perform_test_for_example(
    1, 'execute', $data,
  );
  # true
    
  perform_test_for_feature(arrayref $data) (boolean)
    

The perform_data_for_feature method performs an overridable test for the "feature $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_feature {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=feature $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_feature('noop');
  my $perform_test_for_feature = $test->perform_test_for_feature(
    'noop', $data,
  );
  # true
    
  perform_test_for_function(arrayref $data) (boolean)
    

The perform_data_for_function method performs an overridable test for the "function $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_function {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=function $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_function('eg');
  my $perform_test_for_function = $test->perform_test_for_function(
    'eg', $data,
  );
  # true
    
  perform_test_for_includes(arrayref $data) (boolean)
    

The perform_data_for_includes method performs an overridable test for the "includes" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_includes {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=includes content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_includes;
  my $perform_test_for_includes = $test->perform_test_for_includes(
    $data,
  );
  # true
    
  perform_test_for_inherits(arrayref $data) (boolean)
    

The perform_data_for_inherits method performs an overridable test for the "inherits" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_inherits {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=inherits content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_inherits;
  my $perform_test_for_inherits = $test->perform_test_for_inherits(
    $data,
  );
  # true
    
  perform_test_for_integrates(arrayref $data) (boolean)
    

The perform_data_for_integrates method performs an overridable test for the "integrates" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_integrates {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=integrates content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_integrates;
  my $perform_test_for_integrates = $test->perform_test_for_integrates(
    $data,
  );
  # true
    
  perform_test_for_layout(arrayref $data) (boolean)
    

The perform_data_for_layout method performs an overridable test for the "layout" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_layout {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=layout content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_layout;
  my $perform_test_for_layout = $test->perform_test_for_layout(
    $data,
  );
  # true
    
  perform_test_for_libraries(arrayref $data) (boolean)
    

The perform_data_for_libraries method performs an overridable test for the "libraries" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_libraries {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=libraries content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_libraries;
  my $perform_test_for_libraries = $test->perform_test_for_libraries(
    $data,
  );
  # true
    
  perform_test_for_license(arrayref $data) (boolean)
    

The perform_data_for_license method performs an overridable test for the "license" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_license {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=license content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_license;
  my $perform_test_for_license = $test->perform_test_for_license(
    $data,
  );
  # true
    
  perform_test_for_message(arrayref $data) (boolean)
    

The perform_data_for_message method performs an overridable test for the "message $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_message {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=message $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_message('accept');
  my $perform_test_for_message = $test->perform_test_for_message(
    'accept', $data,
  );
  # true
    
  perform_test_for_metadata(arrayref $data) (boolean)
    

The perform_data_for_metadata method performs an overridable test for the "metadata $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_metadata {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=metadata $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_metadata('execute');
  my $perform_test_for_metadata = $test->perform_test_for_metadata(
    'execute', $data,
  );
  # true
    
  perform_test_for_method(arrayref $data) (boolean)
    

The perform_data_for_method method performs an overridable test for the "method $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_method {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=method $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_method('execute');
  my $perform_test_for_method = $test->perform_test_for_method(
    'execute', $data,
  );
  # true
    
  perform_test_for_name(arrayref $data) (boolean)
    

The perform_data_for_name method performs an overridable test for the "name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_name {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_name;
  my $perform_test_for_name = $test->perform_test_for_name(
    $data,
  );
  # true
    
  perform_test_for_operator(arrayref $data) (boolean)
    

The perform_data_for_operator method performs an overridable test for the "operator $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_operator {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=operator $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_operator('("")');
  my $perform_test_for_operator = $test->perform_test_for_operator(
    '("")', $data,
  );
  # true
    
  perform_test_for_partials(arrayref $data) (boolean)
    

The perform_data_for_partials method performs an overridable test for the "partials" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_partials {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=partials content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_partials;
  my $perform_test_for_partials = $test->perform_test_for_partials(
    $data,
  );
  # true
    
  perform_test_for_project(arrayref $data) (boolean)
    

The perform_data_for_project method performs an overridable test for the "project" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_project {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=project content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_project;
  my $perform_test_for_project = $test->perform_test_for_project(
    $data,
  );
  # true
    
  perform_test_for_signature(arrayref $data) (boolean)
    

The perform_data_for_signature method performs an overridable test for the "signature $name" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_signature {
    my ($self, $name, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=signature $name content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_signature('execute');
  my $perform_test_for_signature = $test->perform_test_for_signature(
    'execute', $data,
  );
  # true
    
  perform_test_for_synopsis(arrayref $data) (boolean)
    

The perform_data_for_synopsis method performs an overridable test for the "synopsis" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_synopsis {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=synopsis content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_synopsis;
  my $perform_test_for_synopsis = $test->perform_test_for_synopsis(
    $data,
  );
  # true
    
  perform_test_for_tagline(arrayref $data) (boolean)
    

The perform_data_for_tagline method performs an overridable test for the "tagline" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_tagline {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=tagline content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_tagline;
  my $perform_test_for_tagline = $test->perform_test_for_tagline(
    $data,
  );
  # true
    
  perform_test_for_version(arrayref $data) (boolean)
    

The perform_data_for_version method performs an overridable test for the "version" section and returns truthy or falsy.

Introduced 3.55, Deprecated 4.15

example 1

  package Example::Test;
  use Venus::Class 'base';
  base 'Venus::Test';
  sub perform_test_for_version {
    my ($self, $data) = @_;
    my $result = length(join "\n", @{$data}) ? true : false;
    $self->pass($result, "=version content");
    return $result;
  }
  package main;
  my $test = Example::Test->new('t/path/pod/example');
  my $data = $test->collect_data_for_version;
  my $perform_test_for_version = $test->perform_test_for_version(
    $data,
  );
  # true
    
  present(string $name, any @args) (string)
    

The present method dispatches to the "present_data_for_${name}" method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

Introduced 3.55, Deprecated 4.15

example 1

  # given: synopsis
  package main;
  my $present = $test->present('name');
  # =head1 NAME
  #
  # Venus::Test - Test Class
  #
  # =cut
    
  present_data_for_abstract() (arrayref)
    

The present_data_for_abstract method builds a documentation block for the "abstract" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =abstract
  #
  # Example Test Documentation
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_abstract = $test->present_data_for_abstract;
  # =head1 ABSTRACT
  #
  # Example Test Documentation
  #
  # =cut
    
  present_data_for_attribute(string $name) (arrayref)
    

The present_data_for_attribute method builds a documentation block for the "attribute $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_attribute = $test->present_data_for_attribute('name');
  # =head2 name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =over 4
  #
  # =item name example 1
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =back
  #
  # =cut
    
  present_data_for_authors() (arrayref)
    

The present_data_for_authors method builds a documentation block for the "authors" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =authors
  #
  # Awncorp, C<awncorp@cpan.org>
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_authors = $test->present_data_for_authors;
  # =head1 AUTHORS
  #
  # Awncorp, C<awncorp@cpan.org>
  #
  # =cut
    
  present_data_for_description() (arrayref)
    

The present_data_for_description method builds a documentation block for the "description" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =description
  #
  # This package provides an example class.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_description = $test->present_data_for_description;
  # =head1 DESCRIPTION
  #
  # This package provides an example class.
  #
  # =cut
    
  present_data_for_encoding() (arrayref)
    

The present_data_for_encoding method builds a documentation block for the "encoding" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =encoding
  #
  # utf8
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_encoding = $test->present_data_for_encoding;
  # =encoding UTF8
  #
  # =cut
    
  present_data_for_error(string $name) (arrayref)
    

The present_data_for_error method builds a documentation block for the "error $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =error error_on_unknown
  #
  # This package may raise an error_on_unknown error.
  #
  # =cut
  #
  # =example-1 error_on_unknown
  #
  #   # given: synopsis
  #
  #   my $error = $example->catch('error', {
  #     with => 'error_on_unknown',
  #   });
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_error = $test->present_data_for_error('error_on_unknown');
  # =over 4
  #
  # =item error: C<error_on_unknown>
  #
  # This package may raise an error_on_unknown error.
  #
  # B<example 1>
  #
  #   # given: synopsis
  #
  #   my $error = $example->catch('error', {
  #     with => 'error_on_unknown',
  #   });
  #
  #   # "..."
  #
  # =back
    
  present_data_for_example(number $numberm string $name) (arrayref)
    

The present_data_for_example method builds a documentation block for the "example-$number $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =attribute name
  #
  # The name attribute is read-write, optional, and holds a string.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_example = $test->present_data_for_example(1, 'name');
  # =over 4
  #
  # =item name example 1
  #
  #   # given: synopsis
  #
  #   my $name = $example->name;
  #
  #   # "..."
  #
  # =back
    
  present_data_for_feature(string $name) (arrayref)
    

The present_data_for_feature method builds a documentation block for the "feature $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =feature noop
  #
  # This package is no particularly useful features.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_feature = $test->present_data_for_feature('noop');
  # =over 4
  #
  # =item noop
  #
  # This package is no particularly useful features.
  #
  # =back
    
  present_data_for_function(string $name) (arrayref)
    

The present_data_for_function method builds a documentation block for the "function $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =function eg
  #
  # The eg function returns a new instance of Example.
  #
  # =cut
  #
  # =example-1 name
  #
  #   # given: synopsis
  #
  #   my $example = eg();
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_function = $test->present_data_for_function('eg');
  # =head2 eg
  #
  # The eg function returns a new instance of Example.
  #
  # =cut
    
  present_data_for_includes() (arrayref)
    

The present_data_for_includes method builds a documentation block for the "includes" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =includes
  #
  # function: eg
  #
  # method: prepare
  # method: execute
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_includes = $test->present_data_for_includes;
  # undef
    
  present_data_for_inherits() (arrayref)
    

The present_data_for_inherits method builds a documentation block for the "inherits" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =inherits
  #
  # Venus::Core::Class
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_inherits = $test->present_data_for_inherits;
  # =head1 INHERITS
  #
  # This package inherits behaviors from:
  #
  # L<Venus::Core::Class>
  #
  # =cut
    
  present_data_for_integrates() (arrayref)
    

The present_data_for_integrates method builds a documentation block for the "integrates" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =integrates
  #
  # Venus::Role::Catchable
  # Venus::Role::Throwable
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_integrates = $test->present_data_for_integrates;
  # =head1 INTEGRATES
  #
  # This package integrates behaviors from:
  #
  # L<Venus::Role::Catchable>
  #
  # L<Venus::Role::Throwable>
  #
  # =cut
    
  present_data_for_layout() (arrayref)
    

The present_data_for_layout method builds a documentation block for the "layout" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =layout
  #
  # encoding
  # name
  # synopsis
  # description
  # attributes: attribute
  # authors
  # license
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_layout = $test->present_data_for_layout;
  # undef
    
  present_data_for_libraries() (arrayref)
    

The present_data_for_libraries method builds a documentation block for the "libraries" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =libraries
  #
  # Venus::Check
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_libraries = $test->present_data_for_libraries;
  # =head1 LIBRARIES
  #
  # This package uses type constraints from:
  #
  # L<Venus::Check>
  #
  # =cut
    
  present_data_for_license() (arrayref)
    

The present_data_for_license method builds a documentation block for the "license" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =license
  #
  # No license granted.
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_license = $test->present_data_for_license;
  # =head1 LICENSE
  #
  # No license granted.
  #
  # =cut
    
  present_data_for_message(string $name) (arrayref)
    

The present_data_for_message method builds a documentation block for the "message $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =message accept
  #
  # The accept message represents acceptance.
  #
  # =cut
  #
  # =example-1 accept
  #
  #   # given: synopsis
  #
  #   my $accept = $example->accept;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_message = $test->present_data_for_message('accept');
  # =over 4
  #
  # =item accept
  #
  # The accept message represents acceptance.
  #
  # B<example 1>
  #
  #   # given: synopsis
  #
  #   my $accept = $example->accept;
  #
  #   # "..."
  #
  # =back
    
  present_data_for_metadata(string $name) (arrayref)
    

The present_data_for_metadata method builds a documentation block for the "metadata $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =method prepare
  #
  # The prepare method prepares for execution.
  #
  # =cut
  #
  # =metadata prepare
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 prepare
  #
  #   # given: synopsis
  #
  #   my $prepare = $example->prepare;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_metadata = $test->present_data_for_metadata('prepare');
  # undef
    
  present_data_for_method(string $name) (arrayref)
    

The present_data_for_method method builds a documentation block for the "method $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =method execute
  #
  # The execute method executes the logic.
  #
  # =cut
  #
  # =metadata execute
  #
  # {since => 1.2.3}
  #
  # =cut
  #
  # =example-1 execute
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_method = $test->present_data_for_method('execute');
  # =head2 execute
  #
  #   execute() (boolean)
  #
  # The execute method executes the logic.
  #
  # I<Since C<1.2.3>>
  #
  # =over 4
  #
  # =item execute example 1
  #
  #   # given: synopsis
  #
  #   my $execute = $example->execute;
  #
  #   # "..."
  #
  # =back
  #
  # =cut
    
  present_data_for_name() (arrayref)
    

The present_data_for_name method builds a documentation block for the "name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =name
  # Example
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_name = $test->present_data_for_name;
  # =head1 NAME
  #
  # Example - Example Class
  #
  # =cut
    
  present_data_for_operator(string $name) (arrayref)
    

The present_data_for_operator method builds a documentation block for the "operator $name" section and returns it as a string.

Introduced 3.55, Deprecated 4.15

example 1

  # =operator ("")
  #
  # This package overloads the C<""> operator.
  #
  # =cut
  #
  # =example-1 ("")
  #
  #   # given: synopsis
  #
  #   my $string = "$example";
  #
  #   # "..."
  #
  # =cut
  package main;
  use Venus::Test 'test';
  my $test = test 't/path/pod/example';
  my $present_data_for_operator = $test->present_data_for_operator('("")');
  # =over 4
  #
  # =item operation: C<("")>
  #
  # This package overloads the C<""> operator.
  #
  # B<example 1>
  #
  #   # given: synopsis
  #
  #   my $string = "$example";
  #
  #   # "..."
  #
  # =back
    

Awncorp, "awncorp@cpan.org"

Copyright (C) 2022, Awncorp, "awncorp@cpan.org".

This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.

2026-01-20 perl v5.42.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.