How can I do unit testing in Perl?

PerlUnit TestingTesting

Perl Problem Overview


I have been doing some OO Perl programming and I was wondering: which is the best way to perform unit tests?

So far I have been using the Test::Simple module to perform tests, but it feels insufficient for what I want.

Can you point me to some nice modules for that?

Perl Solutions


Solution 1 - Perl

I'd add my vote to picking up Test::More before going any further in Perl testing. The Perl testing community is fairly well united around the Test Anything Protocol, and you'll want to play around with Test::More to understand how it works and how tools like prove and Test::Harness::Archive can help automate and distribute testing.

If you want to just "jump right in", I think Test::Class provides xTest facilities with a TAP backend. I haven't used it at all (I'm a Test::More person myself), but it's very highly rated.

Solution 2 - Perl

Test::More should offer you more bang for your bucks once you get the hang of Test::Simple.

Solution 3 - Perl

Judging by your comments on melaos answer, I'd say Test::Class or Test::Unit is what you're looking for.

Solution 4 - Perl

Simple test example:

#!/usr/bin/perl -w

use strict;
use warnings 'all';
use Test::More plan => 4;  # or use Test::More 'no_plan';

use_ok('My::Module', 'Loaded My::Module');
ok( my $obj = My::Module->new(), 'Can create instance of My::Module');

ok( $obj->value('hello'), 'Set value to hello' );
is( $obj->value => 'hello', 'value is still hello');

Solution 5 - Perl

Test::Class usage you can see in this example.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmandelView Question on Stackoverflow
Solution 1 - PerlGauravView Answer on Stackoverflow
Solution 2 - PerlmelaosView Answer on Stackoverflow
Solution 3 - PerlLeon TimmermansView Answer on Stackoverflow
Solution 4 - PerlJDragoView Answer on Stackoverflow
Solution 5 - PerlHynek -Pichi- VychodilView Answer on Stackoverflow