How do you test code that uses roles and composition?

This article explains how to test code that uses roles and composition in Perl. It covers strategies for ensuring code reliability and maintaining clean architecture when using these object-oriented techniques.
roles, composition, Perl, testing, code quality, object-oriented programming

# Example of testing code with roles and composition in Perl

package MyRole {
    use Moose::Role;

    sub role_method {
        my ($self) = @_;
        return "Role Method Called!";
    }
}

package MyClass {
    use Moose;
    with 'MyRole';

    sub class_method {
        my ($self) = @_;
        return "Class Method Called!";
    }
}

package main;

use Test::More;

# Create an instance of MyClass
my $obj = MyClass->new();

# Test the methods from the role and class
is($obj->role_method(), "Role Method Called!", 'Testing role method');
is($obj->class_method(), "Class Method Called!", 'Testing class method');

done_testing();
    

roles composition Perl testing code quality object-oriented programming