J'ai un objet Perl qui a défini use overload '""' => \&name;
et une méthode name
.Comment puis-je simuler -f sur un objet en Perl?
Dans mes tests unitaires j'ai raillé cet objet, y compris la méthode name
, mais le code comme
if (-d $object)
me donne encore Use of uninitialized value in -d ...
. La méthode simulée n'est pas en cours d'exécution.
Mon code Mock:
my $CMmock = Test::MockObject::Extends->new('MyClass');
$CMmock->mock('name', sub { print "TEST!\n";});
$CMmock->mock('""', sub {print "TEST!\n";});
D'autres méthodes que j'ai raillé travaillent.
Voir aussi: http://stackoverflow.com/questions/1954529/perl-mocking-df-and-friends-how-to-put-them-into-coreglobal – mob
Intéressant question, mais s'il vous plaît, posez la question appropriée en termes de moquer une classe avec des surcharges. – darch
Merci mobrule, ce lien a résolu mes problèmes. Dommage que je ne l'ai pas trouvé quand j'ai cherché. – Fredrik