Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re^2: When 100% Code Coverage Backfires

by Ovid (Cardinal)
on Mar 26, 2007 at 14:43 UTC ( #606590=note: print w/replies, xml ) Need Help??

in reply to Re: When 100% Code Coverage Backfires
in thread When 100% Code Coverage Backfires

Rather than put a comment in the code letting people know that the test might fail, it's better to have an assert in there which cannot be ignored. So in this case, I might have something like:

my $split = Data::Record->new( { split => $comment, unless => $RE{quoted}, chomp => 0, trim => 1, } ); my @chunks = $split->records($line_of_sql); if ( @chunks > 1 ) { assert( $chunks[-2] =~ /$some_text/ ); $chunks[-2] =~ s/$some_text//; # XXX remove comment indicator pop @chunks; # XXX remove comment }

With that, I never have to worry that someone might change the previous code and silently break the following code. Assertions should be used to assert that things that should never break in fact, do not break. They can take a bit to get used to, but they're very valuable. In this case, it's even better than my initial code because I don't have a silent failure if the chunk does not contain the code that it must contain at that point.


New address of my CGI Course.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2022-08-15 12:10 GMT
Find Nodes?
    Voting Booth?

    No recent polls found