Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re: Test::LectroTest and Test::MockObject.

by tmoertel (Chaplain)
on Sep 14, 2004 at 20:26 UTC ( #390973=note: print w/replies, xml ) Need Help??

in reply to Test::LectroTest and Test::MockObject.
in thread RFC: Tutorial on Testing

Thanks for your feedback on LectroTest, and your example with Test::MockObject is a cool use. (BTW, I don't think that calculating the expected score in the Property is an abuse at all.)

If you don't mind a suggestion, you could simplify the data-building portion of your code by letting LectroTest build the more-complicated data structure for you:

#!/usr/bin/perl use strict; use Data::Dumper; use Test::LectroTest trials => 10; use List::Util qw( reduce ); $Data::Dumper::Terse = 1; Property { ##[ data <- List( Hash( Unit(1) , Int( range=>[50,100], sized=>0 ) , length=>1 ) , length=>5 ) ]## my @input = map { values %$_ } @$data; my $questions = reduce { $a + $b } @input; print STDERR Dumper( { data => $data , input => \@input , questions => $questions } ), "\n"; 1; # always passes trials }, name => "shell property that holds a generator example";
Also, for the Int generator, you shouldn't specify a range that does not contain zero if the generator is sized. The reason for this rule is that at run time, the intersection of the sizing-guidance range and your given range can be empty, thus making it impossible to generate a valid value. (I have updated the LectroTest::Generator docs to reflect this, and LectroTest will now complain if you try to combine these settings.)

Thanks again for taking the time to provide feedback!


Replies are listed 'Best First'.
Re^2: Test::LectroTest and Test::MockObject.
by pernod (Chaplain) on Sep 14, 2004 at 20:37 UTC

    Thank you! I will incorporate your suggestions, as they are both more concise and more elegant, not to say easier to read. Perhaps a cookbook section with examples on different standard structures might be an idea?

    Anyhow, this is great input for future fiddling with the settings. I'll study the docs for sizing-guidance, as I haven't quite figured those out yet.

    Mischief. Mayhem. Soap.

      Wow! A subject near and dear to my heart. I look forward to working my way thru this pup - specially since I am a QA automation guy. I applaud your effort and will provide my two cents worth shortly. spiderman

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (1)
As of 2021-08-04 20:15 GMT
Find Nodes?
    Voting Booth?
    My primary motivation for participating at PerlMonks is: (Choices in context)

    Results (43 votes). Check out past polls.