我应该使用哪个Perl测试模块?

时间:2010-09-11 06:57:40

标签: perl unit-testing testing

Test::SimpleTest::MoreTest::BuilderTest::Simple发行版的所有部分),Test::ClassTest::Unit,{{3} } ...

我正在使用Moose开始一个新项目 - 我应该使用哪个模块来编写我的测试?

5 个答案:

答案 0 :(得分:20)

您可以暂时从列表中删除Test :: Builder。 Test :: Builder是构建其他Test :: modules的基础模块。因此,除非您想开始编写自己的测试模块,否则不需要它。

我也会忽略Test :: Simple。测试::更多可以完成Test :: Simple所做的一切 - 还有更多。

Test :: Class是一种以真正面向对象的方式编写单元测试的好方法。我推荐它用于复杂的基于OO的系统。

测试:: Moose用于测试代码中与Moose相关的各种功能。你说你正在使用Moose,所以它可能对你有用。它可以与Test :: More。

一起使用

所以我的建议是从Test :: More和Test :: Moose开始。但是也要看一下Test :: Class,看看它是否适合你想要编写测试的方式。

Perl Testing: A Developers Notebook是对此主题的精彩介绍。

答案 1 :(得分:6)

除了davorg的优秀答案之外,我还要注意,我仍然主要使用Test :: More(在Test-DifferencesTest-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之外,它还支持其他语言中的源代码)。我仍然支持它,所以如果你需要什么,请给我一个大喊。

答案 2 :(得分:1)

我建议将Test :: Class作为测试框架的基础。它使更好的结构化,更模块化的代码。您仍然可以使用Test :: More和其他测试模块。 还要检查Test :: Exception。

答案 3 :(得分:1)

其他人建议使用Test :: Class;我从$ foo Magazin中找到了以下PDF overview(我没有写它,只是发现它)对POD文档提供的一些例子非常有帮助。

答案 4 :(得分:0)

这对驼鹿的发展并不重要。  但是,如果您正在进行Web开发,我认为Test :: WWW :: Selenium正在成为测试javascript密集网页及其在最常见的Web浏览器中的行为(firefox,iexplorer,googlechrome等)不可或缺的