Как я могу сделать модульное тестирование в Perl?

57

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

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

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

Теги:
unit-testing
testing

5 ответов

49
Лучший ответ

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

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

  • 1
    Отличное введение, спасибо! Я привык выполнять модульные тесты для python и php, но скоро буду участвовать в проекте на Perl, твой пост определенно поможет мне начать :)
18

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

Также вы можете сослаться на это предыдущее обсуждение по-настоящему, если хотите получить дополнительную информацию: how-can-i-implement-tdd-in-perl

  • 0
    Я ищу что-то для близких к JUnit или NUnit с методом установки и демонтажа и т.д. ... есть идеи?
  • 0
    @ mandel вы работаете на платформе winx?
Показать ещё 1 комментарий
12

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

11

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

#!/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

Test::Class вы можете увидеть в этом .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню