Ein Test hat nichts Magisches an sich. Lesen Sie die Dateien ein und prüfen Sie, ob sie den richtigen Inhalt haben. Bog einfach.
open my $fh, $file;
my $have = join '', <$fh>;
is $have, <<'WANT', "contents of $file";
The quick brown fox
jumped over the lazy grey dog.
WANT
Das ist nichts Bahnbrechendes. Test::Datei::Inhalt wird Ihnen einige Hilfsfunktionen zur Verfügung stellen, damit Sie diese nicht immer wieder schreiben müssen.
Wenn Sie eine Reihe von Dateien testen, können Sie den Prozess datengesteuert gestalten.
my %file_tests;
$file_tests{"expected_filename"} = <<'WANT';
Expected content
WANT
... and so on ...
for my $file (keys %file_tests) {
my $want = $file_tests{$file};
file_contents_is($file, $want, "contents of $file");
}
Wenn der Inhalt sehr umfangreich ist, sollten Sie die erwartete Ausgabe in Dateien speichern und files_contents_identical() verwenden.
Wenn Sie schließlich sichergehen wollen, dass das Programm NUR die erwarteten Dateien erzeugt hat und es keine Ausreißer gibt, legen Sie ein temporäres Verzeichnis an, wechseln Sie mit chdir dorthin, führen Sie das Programm von dort aus und überprüfen Sie, ob das Verzeichnis nur die erwarteten Dateien enthält. Ich überlasse das als Übung für den Leser.