Perl Language
Perl-Test
Suche…
Perl-Unit-Testbeispiel
Im Folgenden finden Sie ein einfaches Beispiel für ein Perl-Testskript, das eine Struktur für das Testen anderer Methoden in der zu testenden Klasse / Paket enthält. Das Skript erzeugt eine Standardausgabe mit einfachem "ok" / "nicht ok" -Text, der als TAP (Test Anything Protocol) bezeichnet wird.
Normalerweise führt der Befehl beweisen die Skripts aus und fasst die Testergebnisse zusammen.
#!/bin/env perl
# CPAN
use Modern::Perl;
use Carp;
use Test::More;
use Test::Exception;
use Const::Fast;
# Custom
BEGIN { use_ok('Local::MyPackage'); }
const my $PACKAGE_UNDER_TEST => 'Local::MyPackage';
# Example test of method 'file_type_build'
sub test_file_type_build {
my %arg = @_;
my $label = 'file_type_build';
my $got_file_type;
my $filename = '/etc/passwd';
# Check the method call lives
lives_ok(
sub {
$got_file_type = $PACKAGE_UNDER_TEST->file_type_build(
filename => $filename
);
},
"$label - lives"
);
# Check the result of the method call matches our expected result.
like( $got_file_type, qr{ASCII[ ]text}ix, "$label - result" );
return;
} ## end sub test_file_type_build
# More tests can be added here for method 'file_type_build', or other methods.
MAIN: {
subtest 'file_type_build' => sub {
test_file_type_build();
# More tests of the method can be added here.
done_testing();
};
# Tests of other methods can be added here, just like above.
done_testing();
} ## end MAIN:
Beste Übung
Ein Testskript sollte nur ein Paket / eine Klasse testen. Dort können jedoch viele Skripts zum Testen eines Pakets / einer Klasse verwendet werden.
Lesen Sie weiter
- Test :: More - Die grundlegenden Testvorgänge.
- Test :: Exception - Beim Testen geworfene Exceptions.
- Test :: Differences - Vergleichen von Testergebnissen mit komplexen Datenstrukturen.
- Test :: Class - Klassenbasiertes Testen statt Skript. Ähnlichkeiten mit JUnit.
- Perl Testing Tutorials - Weitere Informationen.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow