NAME

MooseX::Test::Role - Test functions for Moose roles

SYNOPSIS

use MooseX::Test::Role;
use Test::More tests => 2;

requires_ok('MyRole', qw/method1 method2/);

my $consumer = consumer_of('MyRole', method1 => sub { 1 });
ok($consumer->myrole_method);
is($consumer->method1, 1);

DESCRIPTION

Provides functions for testing roles.

EXPORTED FUNCTIONS

consumer_of ($role, %methods)

Creates an instance of a class which consumes the role. Required methods are stubbed, they return undef by default.

To add additional methods to the instance specify the name and coderef:

consumer_of('MyRole',
    method1 => sub { 'one' },
    method2 => sub { 'two' },
    required_method => sub { 'required' },
);
requires_ok ($role, @methods)

Tests if role requires one or more methods.

AUTHOR

Paul Boyd <pboyd@dev3l.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Paul Boyd.

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