J'utilise les sous-types Moose pour les attributs et je veux tester (Test :: More) leur gestion correcte des entrées violant les contraintes. Actuellement, la gestion des erreurs internes de Mooses fait que mon fichier de test s'arrête complètement lorsqu'il voit les données invalides.Comment tester les messages d'erreur du sous-type Moose?
module source (réduite au minimum pour stackoverflow.com):
package Doctor;
use Moose;
use Moose::Util::TypeConstraints;
subtype 'Phone_nr_t'
=> as 'Str'
=> where { $_ =~ /^\+?[0-9 ]+$/ }
=> message { 'A Phone_nr must be blabla' };
has 'fax' => (is => 'rw', isa => 'Phone_nr_t');
source de test:
use Test::More tests=>1;
use Doctor;
my $testdoc=Doctor->new(fax=>'0341 2345678');
throws_ok { $testdoc->fax('123,456') }
qr('A Phone_nr must be blabla'),
'fax shall reject bad numbers';
Bienvenue dans Stack Overflow et à la balise Perl. C'est une très bonne première question! Je suis impatient de plus. :) – simbabque