Test::More提供常用的use_ok测试来测试模块是否正确加载.但是如何测试模块无法加载?
Test::Exception为类似的故障提供die_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;
是
BEGIN { require Foo; import Foo; }
所以
BEGIN { ok(!eval { require Foo; import Foo; 1 }); }
但我只是去
BEGIN { ok(!eval('use Foo; 1')); }