[Dresden-pm] Dresden-pm Nachrichtensammlung, Band 103, Eintrag 4

Sebastian Oeste oeste.sebastian at googlemail.com
Do Mai 24 02:11:02 PDT 2012


Hallo,

um die Ausgaben von STDERR bzw. STDOUT zu testen gibt es ein Modul
Test::Output.
http://search.cpan.org/~bdfoy/Test-Output-1.01/lib/Test/Output.pm
Welchem man einfach eine Referenz auf eine Subroutine reingibt und sagt was man
erwartet was die Suboutine auf dem entsprechenden "Kanal" ausgibt.

Wenn du auch Warnungen welche z.B. mit warn() erzeugt wurden Testen möchtest,
ob diese wirklich dann ausgegeben werden wenn du sie erwartest, solltest du
dir auch Test::Warn http://search.cpan.org/~chorny/Test-Warn-0.24/Warn.pm
angucken.
Wenn du einfach nur sicher gehen willst das dein Code keine Warnungen ausgibt
dann gibts auch noch Test::NoWarnings.
http://search.cpan.org/~adamk/Test-NoWarnings-1.04/lib/Test/NoWarnings.pm
Hier muss man nicht mehr machen als einfach nur den Test Plan incrementieren.

Solltest du zum Errorhandling Exceptions nutzen dann kannst du die natürlich
auch Testen. 
http://search.cpan.org/~adie/Test-Exception-0.31/lib/Test/Exception.pm
Hab ich persönlich noch nicht genutzt aber sieht brauchbar aus ;-)

Da du das "Perl Best Practice" angesprochen hast, da sollte auch was zum
Testen drin stehen, weiß leider nicht wieviel bin selbst noch am Lesen :-D
Was allerdings auch ne ganz gute Sache ist ist "Perl Testing A Developers
Notebook" dass gibts auch bei Google Books.
http://books.google.de/books?id=o9xWJtvhVZ4C&printsec=frontcover&hl=de&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false
Ich hab das Buch zum anfassen daliegen und muss sagen es ist sehr gut. Die
Module oben sind auch daraus. Vllt. hilft es dir ja weiter. 

Gruß,
Basti


> Hallo,
> 
> euer Zaungast aus Thüringen muss euch wiedermal belästigen.
> 
> Für ein Schulserver-Projekt habe ich ein paar Scripte zur User- und 
> Rechnerverwaltung erstellt. Diese werden über ein Webinterface (erstellt 
> unter Verwendung eines PHP-Frameworks) aufgerufen. Ich wurde schon 
> mehrfach angemahnt, die Scripte so zu erstellen, dass die einen 
> auswertbaren Errorcode zurückliefern. Ich habe deshalb begonnen, alle 
> Scripte zu überarbeiten und konsequent jedes "die" zu ersetzen.
> 
> Um gleichzeitig die Hinweise aus "Perl Best Practices" umzusetzen, habe 
> ich eine Routine "do_exit" erstellt, die einerseits einen Errorcode 
> zurückliefert und andererseits gut gehändelt werden kann, um 
> verständliche Fehlermeldungen zu bringen.
> 
> http://dev.delixs.de/wsvn/delixs/delixs-scripts/trunk/share/perl5/Delixs/Error.pm 
> 
> 
> Die Fehlermeldungen sehen so aus:
> http://www.erasmus-reinhold-gymnasium.de/delixs/scripte/fehlermeldung.txt
> 
> Ich möchte gern zu jeder Routine aus den Modulen entsprechende Tests 
> schreiben, aber genau hier ist mein Problem.
> 
> Ich weiss leider nicht, wie ich diesen zurückgegebenen Errorcode von 
> Perl aus abfragen kann. Auch die Ausgabe der Fehlermeldung würde ich 
> gern testen. Hier sehe ich als einzige Chance, einen Fehler zu 
> provozieren und dabei über eval zu gehen und diese Meldung dann aus $@ 
> auszulesen. Geht das auch anders oder ist das der übliche Weg für solche 
> Tests?
> 
> Bin für jede Antwort sehr dankbar.


Mehr Informationen über die Mailingliste Dresden-pm