Test::Most now has deferred plans

Ovid on 2008-06-18T20:25:43

I've just uploaded Test::Most 0.02 to the cpan. Aside from Test::Warn, I've added deferred plans using a patch from barefootcoder++ (Buddy Burden). Example, the following will pass with Test::More 'no_plan':

use Test::More 'no_plan';
ok 1;
exit;
ok 2;

You can now guarantee that this will fail:

use Test::Most 'defer_plan';
ok 1;
exit;
ok 2;
all_done;

Whee!

Of course, if knowing the number of tests is an expensive calculation, you can still specify the plan at the end:

use Test::Most 'defer_plan';
use My::Tests;
my $tests_expected = My::Tests->run;
all_done($tests_expected);

The latter, of course, should assert the number of tests you expected to run, not the number of tests you've actually run. Otherwise, it's not much better than "no_plan" (except you're still protected from premature exits).