You don't. :) It's just a canned message. Why do you need
to test if something was printed? That's not very helpful.
Instead test what is
about to be printed, before you
print it. In fact, you don't need to print anything at all
from your test suite (except user interaction messages like
"Test this?" and your own debugging when your test has
"bugs").
Now, don't get me wrong - what you originally wanted can
be done, but do you really want to go there?
use IO::Scalar;
use Test::More qw(no_plan);
my $string;
tie *STDOUT, 'IO::Scalar', \$string;
ok(test_foo() eq 'bar');
ok($string eq 'foo');
$string = '';
ok(test_bar() eq 'baz');
ok($string eq 'bar');
$string = '';
sub test_foo {
print 'foo';
return 'bar';
}
sub test_bar {
print 'bar';
return 'baz';
}
No thanks. :)