2010-09-11 3 views

ответ

20

Вы можете удалить Test :: Builder из списка на некоторое время. Test :: Builder - это базовый модуль, на котором встроены другие модули Test ::. Поэтому, пока вы не захотите начать писать свои собственные тестовые модули, вам это не понадобится.

Я также проигнорировал Test :: Simple. Test :: Больше делает все, что Test :: Simple делает - и многое другое.

Test :: Class - хороший способ писать модульные тесты в объектно-ориентированном виде. Я бы рекомендовал его для сложных систем на основе OO.

Test :: Moose предназначен для тестирования различных функций, связанных с Moose, в вашем коде. Вы говорите, что используете Moose, так что это может быть полезно для вас. Его можно использовать в сочетании с Test :: More.

Так что моя рекомендация будет заключаться в том, чтобы начать с Test :: More и Test :: Moose. Но также взгляните на Test :: Class, чтобы узнать, подходит ли он так, как вы хотите писать тесты.

Perl Testing: A Developers Notebook - отличное введение в эту тему.

6

В дополнение к превосходному ответу davorg, я хотел бы отметить, что я все еще в основном использую Test :: More (с некоторой помощью от Test-Differences, Test-WWW-Mechanize-LibXML и других модулей). Я могу рекомендовать против использования Test.pm, который является старым и глупым, и Test :: Simple, который является небольшим подмножеством функции Test :: More.

Есть также Test :: Most (расширение Test :: More), Test :: Class и Test :: Class :: Most, которые предпочитают некоторые люди, но я не нашел времени, чтобы изучить их все же.

Продолжается дискуссия о том, a plan (= tests' count) is a good thing or not. Лично я уже заметил случай в чужом модуле CPAN, где количество тестов было отличным в моей системе, чем на них (и варьировалось в зависимости от разных версий DBI (IIRC)), и которые убедили меня в том, что этот план является хорошим вещь. В результате я создал Test-Count, который является способом подсчета и обновления подсчета утверждений на основе аннотаций внутри хорошо сформированных комментариев (и который поддерживает исходный код на других языках, кроме Perl 5). Я все еще поддерживаю это, поэтому, если вам что-то нужно, дай мне крик.

+1

+1 для обозначения необходимости в плане.Я знаю, что я, вероятно, меньшинство здесь (черт возьми, Шверн, которому принадлежит Test :: Builder, похоже, не согласен со мной, основываясь на его предыдущих комментариях); но я считаю, что точные подсчеты тестов являются квинтэссенцией для любой дистанционно умеренно сложной тестовой среды, если только по той причине, что они служат в качестве защиты от ошибок тестовой среды. – DVK

1

Я бы рекомендовал Test :: Class в качестве основы для вашей тестовой среды. Он обеспечивает более структурированный, более модульный код. И вы можете использовать Test + More и другие тестовые модули. Также проверьте Test :: Exception.

1

Другие предложили Test :: Class; Я нашел следующее PDF overview из $ foo Magazin (я его не писал, только что нашел) был весьма полезен для некоторых, рассмотренных выше того, что предоставляет документация POD.

0

Это не очень важно для развития лося. Однако, если вы занимаетесь веб-разработкой, я думаю, что Test :: WWW :: Selenium становится незаменимым для тестирования веб-страниц с тяжелым дизайном javascript и их поведения в наиболее распространенных веб-браузерах (firefox, iexplorer, googlechrome и т. Д.)