Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
More tools for testing Moose packages
Perl6 Perl

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib/Test/Moose
t
.gitignore
Changes
LICENSE
README.pod
dist.ini

README.pod

NAME

Test::Moose::More - More tools for testing Moose packages

VERSION

This document describes version 0.012 of Test::Moose::More - released September 29, 2012 as part of Test-Moose-More.

SYNOPSIS

    use Test::Moose::More;

    is_class 'Some::Class';
    is_role  'Some::Role';
    has_method_ok 'Some::Class', 'foo';

    # ... etc

DESCRIPTION

This package contains a number of additional tests that can be employed against Moose classes/roles. It is intended to replace Test::Moose in your tests, and reexports any tests that it has and we do not, yet.

FUNCTIONS

known_sugar

Returns a list of all the known standard Moose sugar (has, extends, etc).

TEST_FUNCTIONS

meta_ok $thing

Tests $thing to see if it has a metaclass; $thing may be the class name or instance of the class you wish to check.

does_ok $thing, < $role | \@roles >, [ $message ]

Checks to see if $thing does the given roles. $thing may be the class name or instance of the class you wish to check.

Note that the message will be taken verbatim unless it contains %s somewhere; this will be replaced with the name of the role being tested for.

does_not_ok $thing, < $role | \@roles >, [ $message ]

Checks to see if $thing does not do the given roles. $thing may be the class name or instance of the class you wish to check.

Note that the message will be taken verbatim unless it contains %s somewhere; this will be replaced with the name of the role being tested for.

has_attribute_ok $thing, $attribute_name, [ $message ]

Checks $thing for an attribute named $attribute_name; $thing may be a class name, instance, or role name.

has_method_ok $thing, @methods

Queries $thing's metaclass to see if $thing has the methods named in @methods.

requires_method_ok $thing, @methods

Queries $thing's metaclass to see if $thing requires the methods named in @methods.

Note that this really only makes sense if $thing is a role.

is_role $thing

Passes if $thing's metaclass is a Moose::Meta::Role.

is_class $thing

Passes if $thing's metaclass is a Moose::Meta::Class.

check_sugar_removed_ok $thing

Ensures that all the standard Moose sugar is no longer directly callable on a given package.

check_sugar_ok $thing

Checks and makes sure a class/etc can still do all the standard Moose sugar.

validate_thing

Runs a bunch of tests against the given $thing, as defined:

    validate_class $thing => (

        attributes => [ ... ],
        methods    => [ ... ],
        isa        => [ ... ],

        # ensures $thing does these roles
        does       => [ ... ],

        # ensures $thing does not do these roles
        does_not   => [ ... ],
    );

$thing can be the name of a role or class, an object instance, or a metaclass.

validate_role

The same as validate_thing(), but ensures $thing is a role, and allows for additional role-specific tests.

    validate_role $thing => (

        required_methods => [ ... ],

        # ...and all other options from validate_thing()

validate_class

The same as validate_thing(), but ensures $thing is a class, and allows for additional class-specific tests.

validate_attribute

Run checks against an attribute. Not yet documented or tested exhaustively.

SEE ALSO

Please see those modules/websites for more information related to this module.

SOURCE

The development version is on github at http://github.com/RsrchBoy/test-moose-more and may be cloned from git://github.com/RsrchBoy/test-moose-more.git

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/RsrchBoy/test-moose-more/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

Chris Weyl <cweyl@alumni.drew.edu>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2012 by Chris Weyl.

This is free software, licensed under:

  The GNU Lesser General Public License, Version 2.1, February 1999
Something went wrong with that request. Please try again.