Perl Language
Test Perl
Recherche…
Exemple de test d'unité Perl
Voici un exemple simple de script de test Perl, qui donne une structure permettant de tester d'autres méthodes dans la classe / le package testé. Le script produit une sortie standard avec un simple texte "ok" / "not ok", appelé TAP (Test Anything Protocol).
En général , la prouver commande exécute le script (s) et résume les résultats des tests.
#!/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:
Meilleur entrainement
Un script de test ne doit tester qu'un seul package / classe, mais de nombreux scripts peuvent être utilisés pour tester un package / une classe.
Lectures complémentaires
- Test :: More - Les opérations de test de base.
- Test :: Exception - Test des exceptions levées.
- Test :: Differences - Comparaison des résultats de test avec des structures de données complexes.
- Test :: Class - Test basé sur la classe plutôt que script. Similitudes avec JUnit.
- Didacticiels de test Perl - Pour en savoir plus.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow