The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::Proto::Object - Test Prototype for objects.

SYNOPSIS

        Test::Proto::Object->new->ok($object); # ok
        Test::Proto::Object->new->ok('1'); # not ok
        Test::Proto::Object
                ->new->try_can(
                        'toString', [], ['<div/>'], 'Element div toString returns <div/>'
                )->ok($object);

This is a test prototype which requires that the value it is given is defined and is a scalar. It provides methods for interacting with strings.

METHODS

See Test::Proto::Base for documentation on common methods.

can

        $prototype->can('toString', 'has a toString method')->ok($object);

This method adds a test equivalent to Perl's builtin can, i.e. tests if an object has a method with the given name. It does not actually execute this method.

try_can

        $prototype->try_can('toString', [], ['<div/>'], 'Element div toString returns <div/>')->ok($object);
        # is_deeply($object->toString   (), ['<div/>'], 'Element div toString returns <div/>');

This method allows you to make method calls to your object and test the result. Arguments are: 1) the method name; 2) an arrayref containing the arguments you want to pass to the method call; 3) an arrayref containing the results; 4) Optionally, the reason for the test.

NB: Results are evaluated in list context and what is available for testing is always an arrayref.

OTHER INFORMATION

For author, version, bug reports, support, etc, please see Test::Proto.