The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Test::Mojo::Role - Roles for Test::Mojo

SYNOPSIS

  package Test::Mojo::Role::MyRole;

  use Role::Tiny;

  sub is_awesome {
    my ($t, ...) = @_;
    # do some test
  }

  ---

  # myapp.t

  use Test::More;
  use Test::Mojo::WithRoles 'MyRole';
  my $t = Test::Mojo::WithRoles->new('MyApp');

  $t->get_ok(...)
    ->is_awesome(...);

  done_testing;

DESCRIPTION

Test::Mojo::Role is not a real module, just documentation. Roles do not inherit from a base, but if they did, this would be the base class for Test::Mojo::Role::s.

Roles should be built in such a way that they can be applied via Role::Tiny. Roles may actually be applied using Test::Mojo::WithRoles which provides a nice interface to the test author. Your role does not need to depend on Test::Mojo::WithRoles but if it does, the test author will get that module during install.