Я пишу модуль, который имеет некоторые функции, связанные с текстовыми файлами. Я новичок в тестировании, поэтому решил пойти с Test::More
. Вот как выглядит мой тестовый файл:Является ли это хорошим способом тестирования кода Perl?
use mymod;
use 5.10.0;
use strict;
use warnings;
use Test::More 'no_plan';
my $file_name = "test.file";
sub set_up {
my $self = shift;
open(my $handle,">",$file_name) or die "could not create file test.file $!\n";
# generate a sample text file here
close($handle);
}
sub tear_down {
my $self = shift;
unlink($file_name) or die "could not delete $file_name $!\n";
}
set_up();
open(my $handle,$file_name) || die "could not open $file_name $!\n";
my @lines = mymod->perform($handle);
is_deeply(\@lines,["expected line","another expected line"]);
close($handle);
tear_down();
Это хороший способ проведения тестов? Хорошо ли иметь дело с созданием входного файла образца в моем тесте?
Кстати, я начал писать это как тест Test::Unit
, а затем переключился на Test::More
. Вот почему функции set_up
и tear_down
есть.
насчет того, что я генерации текстовый файл для моего модуля для работы? это приемлемо? – Geo
Создание текстового файла как части вашего теста в порядке, но если у вас есть ошибки с кодом генерации, то ваши результаты теста не могут быть доверены. Обычно лучше иметь предварительно определенный тестовый файл с известным содержимым, если это вообще возможно. – Rudedog
http://www.shadowcat.co.uk/blog/matt-s-trout/a-cunning-no_plan/ – innaM