Test::Tutorial::WritingTests - A Complete Introduction to writing tests
Tests are code that verifies other code produces the expected output for a given input. An example may help:
# This code will die if math doesbn't work. die "Math is broken" unless 1 + 1 == 2;
However it is better to use a framework intended for testing:
ok( 1 + 1 == 2, "Math Works" );
This will tell you if the test passes or fails, and will give you extra information like the name of the test, and what line it was written on if it fails.
use Test::More; ok( 1, "1 is true, this test will pass" ); ok( 0, "0 is false, this test will fail" ); is( 1 + 1, 2, "1 + 1 == 2" ); my @array = first_3_numbers(); is_deeply( \@array, [ 1, 2, 3 ], "function returned an array of 3 numbers" ); # When you are done, call this to satisfy the plan done_testing
See Test::More for ok(), is(), is_deeply(), and several other useful tools.
ok()
is()
is_deeply()
You need to declare how many tests should be seen, this is to ensure your test does not die partway through. There are 2 ways to declare a plan, 1 way to decline to make a plan, and a way to skip everything.
use Test::More; ok(1, "pass"); done_testing;
Using done_testing means you do not need to update the plan every time you change your test script.
At import:
use Test::More tests => 1; ok(1, "pass");
Plan on its own:
use Test::More; plan tests => 1; ok(1, "pass");
use Test::More 'no_plan';
No plan, no way to verify everything ran.
use Test::More skip_all => "We won't run these now";
Just don't do anything.
Test::More
See Test::Tutorial::WritingTools
The source code repository for Test::More can be found at http://github.com/Test-More/test-more/.
The following people have all contributed to the Test-More dist (sorted using VIM's sort function).
There has been a lot of code migration between modules, here are all the original copyrights together:
Copyright 2014 Chad Granum <exodist7@gmail.com>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
Originally authored by Michael G Schwern <schwern@pobox.com> with much inspiration from Joshua Pritikin's Test module and lots of help from Barrie Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa gang.
Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern <schwern@pobox.com>, wardrobe by Calvin Klein.
Copyright 2001-2008 by Michael G Schwern <schwern@pobox.com>.
To the extent possible under law, 唐鳳 has waived all copyright and related or neighboring rights to Test-use-ok.
This work is published from Taiwan.
http://creativecommons.org/publicdomain/zero/1.0
This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts are based on other people's work.
Under the same license as Perl itself
Copyright Mark Fowler <mark@twoshortplanks.com> 2002, 2004.
To install Test::Simple, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Simple
CPAN shell
perl -MCPAN -e shell install Test::Simple
For more information on module installation, please visit the detailed CPAN module installation guide.