X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FUtil.pm;h=341efe7c8c1d13e90a22d1a0e12c23817908a117;hb=295123ff081b91a1691b4dd5a710a1e371200662;hp=7d0c97d784b64ae6d34608d39ce5160741eb2452;hpb=0fa84b98500301948bef369e9cc309bcf4d2733f;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Util.pm b/lib/Mouse/Util.pm index 7d0c97d..341efe7 100644 --- a/lib/Mouse/Util.pm +++ b/lib/Mouse/Util.pm @@ -182,6 +182,16 @@ BEGIN { $@ = $exception; return $ok; }, + 'dies_ok' => sub (&;$) { + my ( $coderef, $description ) = @_; + my $exception = $try_as_caller->( $coderef ); + + $Tester ||= Test::Builder->new; + + my $ok = $Tester->ok( $is_exception->( $exception ), $description ); + $@ = $exception; + return $ok; + }, }, }, ); @@ -191,7 +201,7 @@ BEGIN { our @EXPORT_OK = map { keys %$_ } values %dependencies; our %EXPORT_TAGS = ( all => \@EXPORT_OK, - test => [qw/throws_ok lives_ok/], + test => [qw/throws_ok lives_ok dies_ok/], ); for my $module (keys %dependencies) { @@ -204,8 +214,8 @@ BEGIN { $loaded{$module_name} = $loaded; - for my $method_name (keys %{ $dependencies{ $module_name } }) { - my $producer = $dependencies{$module_name}{$method_name}; + for my $method_name (keys %{ $dependencies{ $module } }) { + my $producer = $dependencies{$module}{$method_name}; my $implementation; if (ref($producer) eq 'HASH') { @@ -258,6 +268,8 @@ without L, an error is thrown. =head3 throws_ok +=head3 dies_ok + =head3 lives_ok =cut