В очередной раз подумалось, что код из блока SYNOPSIS POD-документации модулей на спане нужно автоматически включать в набор тестов.
Вот модуль Time::Business, судя по описанию, полезный: умеет переводить рабочие часы в «общечеловеческие». CPAN сообщает о десятках успешных тестов на разных платформах. Но в действительности к модулю прилагается только тест use_ok (это не самое страшное), а код из краткого описания не работает:
use v5.12;
use Time::Business;
my $bt = new Time::Business ({
WORKDAYS => [1..5],
STARTTIME => 1000,
ENDTIME => 1900,
});
my $seconds = $bt->calctime(time, time + 1 * 86400);
perl test.pl
Can't locate object method "calctime" via package "Time::Business" at test.pl line 9.
Понятно, что дальнейшее чтение документации помогает добиться работоспособности, но внутренний голос сразу начинает говорить о том, что как-то и все остальное некрасиво: и странный формат записи времени (а что, если записать 0800 — не в восьмеричном ли формате это получится?), и капслок в именах ключей, и отсутствие предопределенных значений — собственно, все то, что замечаешь при первом взгляде, но что лишь усиливает негатив после того, как первый тест не заработал.
Комментировать