【发布时间】:2014-09-17 14:38:10
【问题描述】:
Test::More 提供常用的use_ok 测试来测试模块是否正确加载。但是我如何测试一个模块 fails 加载? Test::Exception 为类似故障提供 dies_ok 和表兄弟,但不是在使用时。
当模块需要特定参数或特定环境才能正确加载,并且我想测试这些条件时,这很有用。例如,也许我的“Foo”模块需要一个配置参数,否则应该无法加载:
use Foo 'eat my hat'; # This should work
use Foo; # This should die
我可以使用 Test::More 轻松测试第一个案例:
BEGIN { use_ok('Foo','eat my hat') }
但是我怎样才能测试另一个呢?
BEGIN { use_not_ok('Foo') } # use_not_ok doesn't exist
【问题讨论】:
-
我不确定这是个好主意。您确定不希望
use Foo;与use Foo ();相同吗? -
在我的情况下,我将文件名作为参数传递给模块,如果未指定文件名,它应该死,或者如果文件不存在,它应该死,或者即使文件包含无效内容,它也应该死掉。
-
是的,我不确定这是个好主意。
use Foo ();只是加载你的模块。为什么不use Foo;? -
@ikegami:也许我不明白你在说什么,但在我的情况下,'use Foo ()' 也失败了......
-
如果这是真的,那么
use Foo 'eat my hat';也是如此
标签: perl unit-testing exception