From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

Test::Instruction - A test framework

VERSION

Version 0.06

SYNOPSIS

use Test::Instruction qw/all/;
instruction(
test => 'true',
func => \&Module::To::Test::true_function
);
instruction(
test => 'false',
func => \&Module::To::Test::false_function
);
my $obj = Module::To::Test->new();
instruction(
test => 'hash',
instance => $obj,
meth => 'method_that_returns_a_hash',
expected => { a => 1, b => 2, c => 3 }
);
finish(3);
...
use Test::Instruction qw/all/;
instructions(
name => 'Checking Many Things',
debug => 1,
build => {
class => 'London',
},
run => [
{
test => 'hash',
expected => {
booking => '66/68',
}
},
{
test => 'true',
meth => 'true',
},
{
test => 'false',
meth => 'false',
},
{
test => 'ok',
meth => "chain",
instructions => [
{
test => 'hash',
expected => {
paddington => "sleep"
}
}
]
}
],
);
finish();

EXPORT

instruction

instruction(
test => 'ok',
instance => Module::To::Test->new(),
func => 'okay',
args => {
data => '...'
},
);

test

you can currently run the following tests.

over

ok - ok - a true value
ref - is_deeply - expected [] or {}
scalar - is - expected '',
hash - is_deeply - expected {},
array - is_deeply - expected [],
obj - isa_ok - expected '',
like - like - '',
true - is - 1,
false - is - 0,
undef - is - undef
ref_key_scalar - is - '' (requires key)
ref_key_ref - is_deeply - [] or {} (requires key)
ref_key_like - like - ''
ref_index_scalar - is - '' (requires index)
ref_index_ref - is_deeply - [] or {} (required index)
ref_index_like - like - ''
ref_index_obj - isa_ok - ''
list_key_scalar - is - '' (requires key)
list_key_ref - is_deeply - [] or {} (requires key)
list_key_like - like - ''
list_index_scalar - is - '' (requires index)
list_index_ref - is_deeply - [] or {} (required index)
list_index_obj - isa_ok - ''
list_index_like - like - ''
count - is - ''
count_ref - is - ''
skip - ok(1)
code - is - 'CODE'
code_execute - is_deeply - ''

catch

when you want to catch exceptions....

catch => 1,

defaults the instruction{test} to like.

instance

my $instance = My::Test::Module->new();
instance => $instance,

meth

call a method from the instance

instance => $instance,
meth => 'render'

func

func => \&My::Test::Module::render,

ref_key

instance => { a => 1 },
ref_key => 'a'

ref_index

instance => [ 1, 2, 3 ],
ref_index => 2

args

{} or []

args_list

args => [qw/one, two/],
args_list => 1,

index

index - required when testing - ref_index_* and list_index_*

key

key - required when testing - ref_key_* and list_key_*

instructions

package Foo;
sub new { bless {}, shift; }
sub bar { ['a', [1, 2, 3], 'b'] }
1;
instructions(
name => 'Testing Foo',
build => {
class => 'Foo',
},
run => [
{
test => 'ok',
meth => 'bar',
instructions => [
{
test => 'ref_index_scalar',
index => 0,
expected => 'a'
},
{
test => 'ok',
ref_index => 1,
instructions => [
{
test => 'array',
expected => [1, 2, 3]
},
{
test => 'ref_index_scalar',
index => 0,
expected => 1
}
]
},
...
]
}
]
);

finish

finish();
finish($total_number_of_tests);

AUTHOR

LNATION, <email at lnation.org>

BUGS

Please report any bugs or feature requests to bug-test-instruction at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Instruction. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Test::Instruction

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

This software is Copyright (c) 2022 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

1 POD Error

The following errors were encountered while parsing the POD:

Around line 618:

'=item' outside of any '=over'