大佬教程收集整理的这篇文章主要介绍了perl – 测试::更多不知道测试是否死亡 – 所以我该如何测试?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所有从文件读取或写入的子程序都包含一行open()或die“errmsg”.我正在为模块编写测试并遇到了这个问题.其中一个子程序检查路径是否指向某个东西,在失败时死亡.在继承的脚本中,子例程如下所示:
sub checkExist { my ($type,$path) = @_; if ($type eq 'd') { if (! -d $path) { warn("dir not found: $path\n"); die $pathNotFound; } } elsif ($type eq 'f') { if (! -f $path) { warn("file not found: $path\n"); die $pathNotFound; } elsif (! -s $path) { warn("empty file: $path\n"); die $emptyFile; } } }
现在,我正在使用以下行测试它:
is(HomeBrew::IO::checkExist('f',$0),'',"can checkExist find file $0 ?");
除非我选择一个不存在的路径,否则测试脚本会死,但测试成功,产生以下输出:
# Looks like your test exited with 2 just after 5. Dubious,test returned 2 (wstat 512,0x200) All 5 subtests passed
我更喜欢这是一个失败的测试(而不是一个可疑的传递),但由于这是遗留代码,我也希望这个子程序在失败时停止执行.该怎么办?在函数上编写测试这么简单是愚蠢的吗?
我已经编写了一个checkExist2函数,我将来会在成功时返回undef,否则会出现非零错误(所以如果checkExist2()在别处,我可以写死).其他建议不保持checkExist的功能是值得欢迎的.
use Test::More; use Test::Exception; lives_ok { is(HomeBrew::IO::checkExist('f',"can checkExist find file $0 ?") } '...and code does not die';
以上是大佬教程为你收集整理的perl – 测试::更多不知道测试是否死亡 – 所以我该如何测试?全部内容,希望文章能够帮你解决perl – 测试::更多不知道测试是否死亡 – 所以我该如何测试?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。