67 votes

Comment puis-je effectuer des tests unitaires en Perl?

Je faisais de la programmation Perl OO et je me demandais: quel est le meilleur moyen de réaliser des tests unitaires?

Jusqu'à présent, j'utilisais le module Test :: Simple pour effectuer des tests, mais cela me semble insuffisant.

Pouvez-vous m'indiquer quelques modules intéressants pour cela?

59voto

Gaurav Points 1064

Je voudrais ajouter ma voix à ramasser Test::More avant d'aller plus loin en Perl tests. Le Perl test communauté est assez bien unie autour de l' Essai de Tout Protocole, et vous aurez envie de jouer avec l' Test::More pour comprendre comment il fonctionne et comment les outils comme prove et Test::Harness::Archive peuvent vous aider à automatiser et de distribuer les tests.

Si vous voulez juste "sauter à droite", je pense que Test::Class offre xTest installations avec un ROBINET backend. Je ne l'ai pas utilisé du tout (je suis un Test::More personne de moi-même), mais il est très bien coté.

19voto

melaos Points 3981

Test :: More devrait vous offrir plus pour votre argent une fois que vous maîtrisez Test :: Simple.

Aussi, vous pouvez vraiment vous référer à cette discussion précédente si vous voulez plus d’informations: comment-puis-je-mettre en oeuvre-tdd-in-perl

12voto

Leon Timmermans Points 23230

À en juger par vos commentaires sur la réponse melaos, je dirais que Test :: Classe ou Test :: Unité est ce que vous recherchez.

11voto

JDrago Points 1479

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');
 

3voto

Test :: Utilisation de la classe que vous pouvez voir dans cet exemple .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X