我是一个新的Perl,我想知道是否有一个优先的单元测试框架?
Google向我展示了一些不错的结果,但由于我是新手,我不知道社区是否有明确的偏好。
解决方法
Perl有一套MASSIVE一套伟大的测试工具! Perl核心有几万个自动检查,并且大多数情况下他们都使用这些标准的Perl框架。他们都使用TAP –
Test Anything Protocol绑在一起。
在Perl中创建TAP测试的标准方法是使用Test::More系列软件包,包括Test::Simple入门。这里有一个简单的例子:
use 5.012; use warnings; use Test::More tests => 3; my $foo = 5; my $bar = 6; ok $foo == 5,'Foo was assigned 5.'; ok $bar == 6,'Bar was assigned 6.'; ok $foo + $bar == 11,'Addition works correctly.';
输出将是:
ok 1 - Foo was assigned 5. ok 2 - Bar was assigned 6. ok 3 - Addition works correctly.
基本上,要开始,所有你需要做的是传递一个布尔值和一个字符串解释应该发生什么!
一旦你越过那个步骤,Test :: More有很多其他函数,使测试其他事情更容易(字符串,正则表达式比较,深层结构比较),还有Test::Harness后端,将让你测试大组的单独测试脚本在一起。
最重要的是,正如Schwern指出的,几乎所有的现代Test ::模块一起工作。这意味着您可以使用rjh answer中列出的所有伟大模块Test::Class
(Markus指出)。事实上,因为Test::Builder – Test :: More和其他的工具是建立在(并且目前由Schwern维护的)。 ..thanks Schwern!) – 你可以,如果需要,从头开始构建你的OWN测试子程序,将与所有其他测试框架一起工作。这就使Perl的TAP系统是我认为最好的之一:一切都一起工作,每个人都使用相同的工具,你可以添加到框架,以适应您的需要与很少的额外工作。