我正在为自己的调试器模块Devel::AllSubs
编写单元测试,因此需要检查它是否在STDERR上的演示代码上打印了正确的字符串。所以我假设要添加像这样的代码:
use Test::More;
use Devel::AllSubs;
...
subtest "stderr and stdout" => sub {
{
package main;
sub foo { bar(); }
sub bar { print "Hello, world"; 1; }
foo();
1;
}
};
在STDERR执行{ package main; ... }
块之后,必须有
main::foo
main::bar
但是如何捕获{ package main; ... }
块的STDOUT / STDERR并将其与正确的字符串进行比较(例如,使用Test::More::is)呢?