diff options
Diffstat (limited to 't/10-errors.t')
-rw-r--r-- | t/10-errors.t | 82 |
1 files changed, 46 insertions, 36 deletions
diff --git a/t/10-errors.t b/t/10-errors.t index d8925ee..e724e78 100644 --- a/t/10-errors.t +++ b/t/10-errors.t @@ -2,44 +2,54 @@ use strict; use warnings; use Test::More; -use Test::Exception; +use Test::Fatal; use Eval::Closure; -throws_ok { - eval_closure() -} qr/'source'.*required/, "error when source isn't declared"; - -throws_ok { - eval_closure( - source => {}, - ) -} qr/'source'.*string or array/, "error when source isn't string or array"; - -throws_ok { - eval_closure( - source => '1', - ) -} qr/'source'.*return.*sub/, "error when source doesn't return a sub"; - -throws_ok { - eval_closure( - source => 'sub { }', - environment => { 'foo' => \1 }, - ) -} qr/should start with \@, \%, or \$/, "error from malformed env"; - -throws_ok { - eval_closure( - source => 'sub { }', - environment => { '$foo' => 1 }, - ) -} qr/must be.*reference/, "error from non-ref value"; - -throws_ok { - eval_closure( - source => '$1++', - ) -} qr/Modification of a read-only value/, "gives us compile errors properly"; +like( + exception { eval_closure() }, + qr/'source'.*required/, + "error when source isn't declared" +); + +like( + exception { eval_closure(source => {}) }, + qr/'source'.*string or array/, + "error when source isn't string or array" +); + +like( + exception { eval_closure(source => 1) }, + qr/'source'.*return.*sub/, + "error when source doesn't return a sub" +); + +like( + exception { + eval_closure( + source => 'sub { }', + environment => { 'foo' => \1 }, + ) + }, + qr/should start with \@, \%, or \$/, + "error from malformed env" +); + +like( + exception { + eval_closure( + source => 'sub { }', + environment => { '$foo' => 1 }, + ) + }, + qr/must be.*reference/, + "error from non-ref value" +); + +like( + exception { eval_closure(source => '$1++') }, + qr/Modification of a read-only value/, + "gives us compile errors properly" +); done_testing; |