On Saturday, August 3, 2002, at 09:56 pm, Andy Lester wrote: > I'm adding some tests to Test::HTML::Lint, and one of the things that I > want to check for is that "html_ok(undef)" fails. Remember that > html_ok() is a T::B-based module. [snip]
Take a look at Test::Builder::Tester. Something like this should do the trick: use Test::Builder::Tester tests => 4; use Test::HTML::Lint; use Test::More; BEGIN { use_ok( 'Test::HTML::Lint' ); } my $chunk = "<P>This is a fine chunk of code</P>"; test_out("not ok 2"); html_ok(undef); test_test("undef should fail"); html_ok( '' ); # Blank is OK html_ok( $chunk ); Or, if you prefer, you could go all retro and use Test and IO::File. For example: use strict; use Test; use Test::Builder; use Fcntl; use IO::File; use Test::HTML::Lint; plan tests => 2; my $io = IO::File->new_tmpfile or die "couldn't create tmp file ($!)\n"; my $Test = Test::Builder->new; $Test->output($io); $Test->failure_output($io); $Test->expected_tests(1); html_ok(undef); seek $io, SEEK_SET, 0; while (my $actual = <$io>) { chomp($actual); my $expected=<DATA>; chomp($expected); ok($actual, $expected); }; __DATA__ 1..1 not ok 1 > I see two problems with this approach: > > * It's not really a TODO item. > > * If html_ok(undef) unexpectedly succeeds, the results aren't really > obvious: [snip] Personally, I just use TODO, unless I need to check the diagnostic message output. In that case I use Test::Builder::Tester, unless I need to check the plan output. In that case, I use Test and IO::File :-) Hope this helps. Cheers, Adrian