Existe-il des conventions pour les noms de fonction lors de l'utilisation de Perl Test: Plus d'?

StackOverflow https://stackoverflow.com/questions/45485

  •  09-06-2019
  •  | 
  •  

Question

Existe-il des conventions pour les noms de fonction lors de l'utilisation de Perl Test::Plus ou Test::modules Simples?

Je suis spécialement posant des questions sur les noms de fonctions sont utilisées pour configurer un environnement de test avant de le tester et d'abattre l'environnement après la réussite de l'épreuve(s).

cheers,

Rob

Était-ce utile?

La solution

Je ne pense pas qu'il y a de telles conventions de là-bas.

La seule façon que vous pouvez faire c'est peut-être l'utilisation de DÉBUT/FIN de bloc, si les ressources sont à utiliser sur l'ensemble du fichier.

L'approche générale que je prends est de mettre les tests dans un bloc de code, puis initialiser les variables/ressources etc il.Vous pouvez peut-être garder un simple décompte du nombre de tests que vous avez pour chaque fonction.

Quelque chose comme ...

BEGIN {
   # If you want to set some global db setting/file setting/INC changes etc
}

# Tests functionality 1...
{
     # have fun .... 
}

# Tests functionality 2...
{
     # have more fun .... 
}

END {
   # Clean up the BEGIN changes
}

Sur une autre note, vous pouvez lire cet pour les essais en perl ... http://perlandmac.blogspot.com/2007/08/using-perl-testsimple-and-testmore.html

Autres conseils

Si vous êtes à la recherche pour plus de XUnit style de test, découvrez Test::Classe.Il fournit à l' Test(setup) et Test(teardown) attributs pour les méthodes qui, bien, le montage et le démontage de votre environnement.Il vous donne aussi une bien belle façon de traiter avec les plans (vous pouvez en fournir une pour chaque méthode de test individuellement, de sorte que le comptage est beaucoup moins délicat) et vous permet d'hériter des tests par des hiérarchies de classes.

Je ne pense pas qu'il y est un officiel de conventions, donc je vous conseille de regarder les exemples à http://perldoc.perl.org/Test/More.html et de voir comment l'écriture de leurs tests.

Nous utilisons le Test::Plus largement pour nos tests unitaires comme beaucoup (la plupart) de notre traitement des données les scripts sont écrits en Perl.Nous n'avons pas une convention spécifique pour les noms de fonction, mais plutôt de faire quelque chose comme Jagmal suggère, à savoir casser les tests en petits morceaux et l'initialisation localement.

Dans notre cas, chaque sous-test est encapsulé dans une fonction distincte dans le script de test.En plus de cela nous avons un cadre qui nous permet d'exécuter tous les sous-tests (le test de l'unité) ou de communiquer avec les sous-tests ou des ensembles de sous-tests, pour permettre l'exécution de juste celles que nous travaillons en ce moment.

Grâce Espo.

J'ai eu un coup d'oeil à l'perldocs mais il n'existe pas de convention concernant l'installation et le démontage des aspects.

Pas comme XUnit série de tests.

Merci pour la réponse Jagmal mais je ne suis pas sûr en utilisant les blocs BEGIN et END pour l'installation et le démontage comme vous ne sont pas clairement ce que vous faites par les noms.Il y a aussi le problème évident d'avoir un seul exécution du programme d'installation et un démontage par test, c'est à direpar chaque .t fichier.

J'ai eu un rapide coup d'oeil au Test::Plus et il a l'air vraiment intéressant, surtout l'expliquer fonction.Merci Matt.

Hmmm.Il suffit de penser plus loin sur l'utilisation de l'blocs BEGIN et END, je pense que si je baisse le niveau de granularité des tests de sorte qu'il n'est qu'un programme d'installation et un démontage nécessaire, alors ce serait une bonne solution.

cheers,

Rob

La première convention que je vous suggère est d'amerrissage Test: Plus pour le Test::Plus

Perl scripts de test ne sont pas spéciales ou de magie en quelque sorte.En tant que tels, ils peuvent contenir exactement les mêmes choses que tout autre script Perl peut.

Vous pouvez nommer les routines de tout ce que vous voulez, et de les appeler avant, après, et intertwingled avec, vos tests.

Vous pouvez avoir n'importe quelle quantité de code d'initialisation avant tout tests, une quantité de code de nettoyage après les tests, et le montant de tout autre code, mélangées à des tests.

Tout cela suppose que vous parlez de CPAN-style t/*.t des scripts de test.Je pense que vous êtes, mais je parviens à lire votre question comme un sujet de l'extension harnais de test, si je cligne des yeux juste à droite.

Si vous êtes ouvert à entrer dans les tests d'acceptation en tant que bien, comme le Rubis du Concombre de prendre un coup d'oeil à ce petit exemple http://github.com/kesor/p5-cucumber c'est à l'aide de Test::More et un concombre style de tests d'acceptation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top