Мы написали парсеры для различных форматов научных данных на Perl.Недавно я добавил набор тестов с файлом парсера _ *. T
для каждого формата и подформат.
Конечно, API парсеров точно такой же, только данные, считанные из файлов примеров, которые используются для тестирования синтаксического анализа, отличаются. Чтобы упростить тестовые файлы, я написал подпрограмму, которая передает объект парсера и хеш-структуру, представляющую ожидаемые данные. Похоже,
my $parser = new MyApp::Parser($file);
test_nested_objects = ($parser, {
property1 => "value",
property2 => 123,
subobject_accessor => {
property3 => "foobar",
}
}
Подложка test_nested_objects
просматривает хэш и запускает тесты для всех свойств, определенных в хеш-коде, например если subobject_accessor
может быть вызван, возвращает объект, и этот объект может быть вызван property3
.
Я проверил, сколько тестов запускает весь файл *. T
, и добавил tests => 123
во все файлы *. T
. Теперь я добавил несколько проверок к общей функции, и все планы неверны.
Как сообщить моему плану о подтестах? Я бы хотел добиться следующего:
Надеюсь, вы понимаете. Извините за длинную историю, но я подумал, что люди, вероятно, не поймут без некоторых предварительных знаний.