Build Status Coverage Status

NAME

Test::Synopsis::Expectation - Test SYNOPSIS code with expectations

SYNOPSIS

use Test::Synopsis::Expectation;
use Test::More;

synopsis_ok('path/to/target.pm');
done_testing;

### Following, SYNOPSIS of `target.pm`
my $sum;
$sum = 1; # => 1
++$sum;   # => is 2

use Foo::Bar;
my $instance = Foo::Bar->new; # => isa 'Foo::Bar'

my $str = 'Hello, I love you'; # => like qr/ove/

my $obj = {
    foo => ["bar", "baz"],
}; # => is_deeply { foo => ["bar", "baz"] }

DESCRIPTION

Test::Synopsis::Expectation is the test module to test the SYNOPSIS code with expectations. This module can check the SYNOPSIS is valid syntax or not, and tests whether the result is suitable for expected.

FUNCTIONS

NOTATION OF EXPECTATION

Comment that starts at # => then this module treats the comment as test statement.

NOTES

This module ignores yada-yada operators that is in SYNOPSIS code. Thus, following code is valid.

my $foo;
...
$foo = 1; # => 1

It cannot put test case in for(each) statement.

# Example of not working
for (1..10) {
    my $foo = $_; # => 10
}

This example doesn't work. On the contrary, it will be error. (Probably nobody uses such as this way... I think.)

LICENSE

Copyright (C) moznion.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

moznion moznion@gmail.com