#!perl use v5.22; use warnings; use Test::Deep; use Test::More; BEGIN { package MockObj; use Moo; use Types::Standard qw(ArrayRef Str); use namespace::autoclean; has 'files' => ( # `rpw` would be better as, in practice, # this is only used inside the class is => 'rw', isa => ArrayRef[Str], ); 1; }; my $mock = MockObj->new; my @list = ('string one', 'Different string', 'With feeling'); note explain \@list; $mock->files( \@list ); my @strings = $mock->files; note explain \@strings; cmp_deeply(\@strings, bag(@list)); done_testing; #### # [ # 'string one', # 'Different string', # 'With feeling' # ] # [ # [ # 'string one', # 'Different string', # 'With feeling' # ] # ] not ok 1 # Failed test at t/test-case.t line 31. # Comparing $data as a Bag # Missing: 'Different string', 'With feeling', 'string one' # Extra: 1 reference