如何在Perl中进行单元测试?

man*_*del 62 testing perl unit-testing

我一直在做一些OO Perl编程,我想知道:哪个是执行单元测试的最佳方法?

到目前为止,我一直在使用Test :: Simple模块来执行测试,但感觉不足以满足我的需求.

你能指点我一些很好的模块吗?

Gau*_*rav 49

Test::More在进行Perl测试之前,我会加入我的投票选择.在Perl的测试社区是相当不错的周围团结测试任何协议,你会想玩弄Test::More了解它是如何工作以及如何之类的工具prove,并Test::Harness::Archive能帮助自动化和分发测试.

如果你想"直接进入",我认为Test::ClassxTest设施提供了一个TAP后端.我根本没有使用它(我Test::More自己就是一个人),但它的评价非常高.

  • 很棒的介绍,谢谢!我已经习惯了对python和php进行单元测试,但是很快就会参与一个perl项目,您的帖子肯定可以帮助我入门:) (2认同)

mel*_*aos 18

测试::一旦你掌握了Test :: Simple,我会为你的雄鹿提供更多的帮助.

如果您想了解更多信息,也可以参考以前的讨论: how-can-i-implement-tdd-in-perl


Leo*_*ans 12

根据你对melaos回答的评论,我会说Test :: ClassTest :: Unit就是你要找的东西.


JDr*_*ago 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');
Run Code Online (Sandbox Code Playgroud)