J'ai fait de la programmation OO Perl et je me demandais: quelle est la meilleure façon d'effectuer des tests unitaires?
Jusqu'à présent, j'ai utilisé le module Test :: Simple pour effectuer des tests, mais cela semble insuffisant pour ce que je veux.
Pouvez-vous m'indiquer quelques modules Nice pour cela?
J'ajouterais mon vote pour ramasser Test::More
avant d'aller plus loin dans les tests Perl. La communauté de test Perl est assez bien unie autour du Test Anything Protocol , et vous voudrez jouer avec Test::More
pour comprendre comment cela fonctionne et comment des outils comme prove
et Test::Harness::Archive
peut aider à automatiser et à distribuer les tests.
Si vous voulez juste "sauter directement", je pense que Test::Class
fournit des fonctionnalités xTest avec un backend TAP . Je ne l'ai pas utilisé du tout (je suis Test::More
personne moi-même), mais c'est très bien noté .
Test :: More devrait vous offrir plus pour votre argent une fois que vous aurez compris Test :: Simple.
Vous pouvez également vous référer à cette discussion précédente si vous voulez plus d'informations: comment-je-implémenter-tdd-en-Perl
À en juger par vos commentaires sur la réponse de melaos, je dirais que Test :: Class ou Test :: Unit est ce que vous recherchez.
Exemple de test simple:
#!/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');
Test :: Class utilisation que vous pouvez voir dans ce exemple .