diff options
Diffstat (limited to '')
-rw-r--r-- | lib/MooseX/AbstractFactory/Role.pm | 2 | ||||
-rw-r--r-- | t/06_die_with_inexistant_class.t | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/MooseX/AbstractFactory/Role.pm b/lib/MooseX/AbstractFactory/Role.pm index d560ca9..3b27f60 100644 --- a/lib/MooseX/AbstractFactory/Role.pm +++ b/lib/MooseX/AbstractFactory/Role.pm @@ -22,7 +22,7 @@ sub create { # pull in our implementation class $factory->_validate_implementation_class($iclass); - eval "use $iclass"; + Class::MOP::load_class($iclass); my $options = $factory->_options(); diff --git a/t/06_die_with_inexistant_class.t b/t/06_die_with_inexistant_class.t new file mode 100644 index 0000000..fcf600b --- /dev/null +++ b/t/06_die_with_inexistant_class.t @@ -0,0 +1,18 @@ +use strict; +use warnings; +use Test::More tests => 2; +use Test::Exception; + +BEGIN { + package My::Factory; + use MooseX::AbstractFactory; + use Moose; +} + +dies_ok { + my $imp = My::Factory->create( + 'FooBar', {} + ); +} "Factory->new() die"; + +like $@, qr/Can't locate My\/Factory\/FooBar.pm/; |