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

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.