7 use Test::Builder::Tester tests => 13;
10 BEGIN { use_ok( 'Test::Exception' ) };
17 my $filename = sub { return (caller)[1] }->();
20 my $ok = dies_ok { div(1, 0) } 'dies_ok passed on die';
21 ok($ok, 'dies_ok returned true when block dies');
26 test_out('not ok 1 - dies_ok failed');
28 my $ok = dies_ok { div(1, 1) } 'dies_ok failed';
29 test_test('dies_ok fails when code does not die');
31 ok(!$ok, 'dies_ok returned false on failure');
36 my $ok = throws_ok { div(1, 0) } '/./', 'throws_ok succeeded';
37 ok($ok, 'throws_ok returned true on success');
41 test_out('not ok 1 - throws_ok failed');
43 test_err('# expecting: /./');
44 test_err('# found: normal exit');
45 my $ok = throws_ok { div(1, 1) } '/./', 'throws_ok failed';
46 test_test('throws_ok fails when appropriate');
48 ok(!$ok, 'throws_ok returned false on failure');
52 my $ok = lives_ok { div(1, 1) } 'lives_ok succeeded';
53 ok($ok, 'lives_ok returned true on success');
57 test_out('not ok 1 - lives_ok failed');
59 test_err("# died: Illegal division by zero at $filename line 14.");
60 my $ok = lives_ok { div(1, 0) } 'lives_ok failed';
61 test_test("dies_ok fails");
63 ok(!$ok, 'lives_ok returned false on failure');