Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Overloadding array_each when Unit testing with Test::Deep

by willjones (Sexton)
on Jun 20, 2013 at 15:49 UTC ( [id://1039997]=note: print w/replies, xml ) Need Help??


in reply to Overloadding array_each when Unit testing with Test::Deep

Actually, I figured out how this could be done on my own.

I located the following link showing more Test Deep source code which helped: https://bitbucket.org/firdausderaman/nextbrm/src/80068228efeaaea657bdfb606defc4d6fbdf5d9a/lib/Test?at=master

Here's the solution for whoever may be interested in what the answer is.

Create a .pm file with the following contents:

package Test::Deep; use strict; use warnings; { *{array_each_orHash} = sub { require "Test/Deep/ArrayEachOrHash.pm"; my $obj = Test::Deep::ArrayEachOrHash->new(@_); return $obj; }; push(@Test::Deep::EXPORT, "array_each_orHash"); } 1;

Next create a folder called Test with a subfolder called Deep and then create a new file called ArrayEachOrHash.pm and put the following into it:

package Test::Deep::ArrayEachOrHash; use strict; use warnings; use Test::Deep::Cmp; sub init { my $self = shift; my $val = shift; $self->{val} = $val; } sub descend { my $self = shift; my $got = shift; my $result; if ( ref($got) eq "ARRAY" ) { my $exp = [ ($self->{val}) x @$got ]; $result = Test::Deep::descend($got, $exp); } else { my $exp = $self->{val}; $result = Test::Deep::descend($got, \%$exp); } return $result; } 1;

Now be sure to use the first pm module, whatever you named it, from your main source file and it should cause a new keyword to be available for Test::Deep to use called "array_each_orHash".

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1039997]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2024-04-19 23:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found