我正在尝试编写一个perl单元测试。我可以为它测试happy case场景。但是,如果方法中产生错误,它会使用Carp:confess "<message>"
打印错误。在我的测试中我没能发现这个病例。我试过使用
dies_ok( <method call>, 'Expected Error' );
然而,测试用例仍然失败。它打印传递给Carp::告白的信息,然后打印
Looks like your test exited with 111 before it could output anything. Dubious, test returned 111 (wstat 28416, 0x6f00)
有办法让我抓住这个吗?我甚至尝试过throws_ok
,但没有成功。
请指导我如何发现这些错误。我是否错误地使用了这些dies_ok
和throws_ok
?
您可以在eval表达式后检查$@。
use strict;
use warnings;
use Test::More;
use Carp qw(confess);
sub err { confess('Bad thing'); }
eval { err };
like($@, qr/^Bad thing/, "confess('Bad thing')");
done_testing();