Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: How to ask better questions using Test::More and sample data

by haukex (Archbishop)
on Oct 12, 2017 at 10:31 UTC ( [id://1201201]=note: print w/replies, xml ) Need Help??


in reply to How to ask better questions using Test::More and sample data

This post makes excellent points! Just to expand a little on regex testing - having many test cases helps:

#!/usr/bin/env perl use warnings; use strict; use Test::More; #use re 'debug'; # optional my $regex = qr/(foo|bar)(quz|baz)?$/; # "match / doesn't match" tests like "foo", $regex; like "bar", $regex; like "foobar", $regex; like "fooquz", $regex; like "foobaz", $regex; like "barbaz", $regex; like "foobarquz", $regex; like "foobarfooquz", $regex; unlike "foobarquzbaz", $regex; unlike "quzbaz", $regex; unlike "hello", $regex; unlike "foo ", $regex; # etc. # check capture groups ok "foobar" =~ $regex; is $1, "bar"; is $2, undef; ok "foobarquz" =~ $regex; is $1, "bar"; is $2, "quz"; ok "foobaz" =~ $regex; is $1, "foo"; is $2, "baz"; # etc. # and/or check return values in list context is_deeply [ "foobar" =~ $regex ], [ "bar", undef ]; is_deeply [ "fooquz" =~ $regex ], [ "foo", "quz" ]; is_deeply [ "barbaz" =~ $regex ], [ "bar", "baz" ]; # etc. # an example with /g return values is_deeply [ "foobarquzbaz" =~ /[aeiou]/g ], [ "o", "o", "a", "u", "a" ]; # same thing, written differently: my @matches = "foobarquzbaz" =~ /[aeiou]/g; is_deeply \@matches, [ "o", "o", "a", "u", "a" ]; done_testing;

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2024-04-20 04:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found