В тесте нет ничего волшебного. Прочитайте файлы, убедитесь, что они имеют правильное содержимое. Болото простое.
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
Там нет ничего новаторского. Test :: File :: Contents предоставит вам некоторые служебные функции, так что вам не придется писать это снова и снова.
Если вы тестируете несколько файлов, вы можете настроить управление данными процесса.
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");
}
Если содержимое большое, вы можете вставить ожидаемый результат в файлы и использовать files_contents_identical ().
Наконец, если вы хотите убедиться, что программа ТОЛЬКО создала ожидаемые вами файлы, и в них нет никаких заблуждений, создайте временный каталог, запустите в него chdir, запустите программу оттуда и убедитесь, что каталог содержит только те файлы, которые вы ожидаете , Я оставлю это как упражнение для читателя.