summaryrefslogtreecommitdiffstats
path: root/t/10-errors.t
diff options
context:
space:
mode:
Diffstat (limited to 't/10-errors.t')
-rw-r--r--t/10-errors.t82
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;