Как я могу сделать модульное тестирование в Perl? - PullRequest
61 голосов
/ 02 февраля 2009

Я занимался программированием на OO Perl, и мне было интересно: каков наилучший способ выполнения модульных тестов?

До сих пор я использовал модуль Test :: Simple для выполнения тестов, но он чувствует недостаточно для того, что я хочу.

Можете ли вы указать мне несколько хороших модулей для этого?

Ответы [ 5 ]

48 голосов
/ 02 февраля 2009

Я бы добавил свой голос, чтобы набрать Test::More, прежде чем идти дальше в тестировании Perl. Сообщество по тестированию Perl довольно хорошо объединено вокруг протокола Test Anything , и вы захотите поэкспериментировать с Test::More, чтобы понять, как он работает и как такие инструменты, как prove и Test::Harness::Archive могут помочь автоматизировать и распространять тестирование.

Если вы хотите просто «прыгнуть прямо», я думаю, что Test::Class предоставляет возможности xTest с TAP бэкэндом. Я не использовал его вообще (я Test::More человек сам), но это очень высоко оценили .

18 голосов
/ 02 февраля 2009

Test :: More должно предложить вам больше денег за ваши деньги, как только вы освоите Test :: Simple.

Также вы можете действительно обратиться к этому предыдущему обсуждению, если хотите получить больше информации: как-могу-я орудие-TDD-в жемчужно

12 голосов
/ 02 февраля 2009

Судя по вашим комментариям к ответу melaos, я бы сказал, Test :: Class или Test :: Unit - это то, что вы ищете.

11 голосов
/ 02 февраля 2009

Простой тестовый пример:

#!/usr/bin/perl -w

use strict;
use warnings 'all';
use Test::More plan => 4;  # or use Test::More 'no_plan';

use_ok('My::Module', 'Loaded My::Module');
ok( my $obj = My::Module->new(), 'Can create instance of My::Module');

ok( $obj->value('hello'), 'Set value to hello' );
is( $obj->value => 'hello', 'value is still hello');
3 голосов
/ 03 февраля 2009

Test :: Class использование вы можете увидеть в этом примере .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...