加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl是否只对模块进行单元测试,而不是程序?

发布时间:2020-12-15 22:06:07 所属栏目:大数据 来源:网络整理
导读:我在’网和我所拥有的书,Perl测试中找到的文档要么说或建议对Perl进行单元测试通常在创建模块时完成. 这是真的?有没有办法使用Test :: More和cousins对实际程序进行单元测试? 解决方法 当然,您可以使用 Test::More测试脚本.这更难,因为大多数脚本需要作为
我在’网和我所拥有的书,Perl测试中找到的文档要么说或建议对Perl进行单元测试通常在创建模块时完成.

这是真的?有没有办法使用Test :: More和cousins对实际程序进行单元测试?

解决方法

当然,您可以使用 Test::More测试脚本.这更难,因为大多数脚本需要作为一个单独的进程运行,从中捕获输出,然后根据预期的输出进行测试.

这就是modulinos(参见第17章:brian d foy,Mastering Perl,第二版,O’Reilly,2014)的原因. modulino是一个也可以用作模块的脚本.这使得测试更容易,因为您可以将modulino加载到测试脚本中,然后像常规模块一样测试其功能.

modulino的关键特征是:

#! /usr/bin/perl
package App::MyName; # put it in a package

run() unless caller; # Run program unless loaded as a module

sub run {
  ... # your program here
}

该函数不必被称为run;如果你是C程序员,你可以使用main.您通常还有其他子程序可以根据需要运行调用.

然后你的测试脚本可以使用require“path / to / script”来加载你的modulino并运用它的功能.由于许多脚本涉及编写输出,并且通常更容易打印而不是打印sub_that_returns_big_string(),您可能会发现Test::Output很有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读