|
Come al solito all'inizio di un nuovo progetto sono preso dalla smania del test driven development. Poi non riesco a tenere il ritmo, e finisco per ritornare al ciclo prova -> modifica -> riprova, però almeno le intenzioni ci sono. Ma non volevo parlare di questo. Una parte del mio codice prevede che una classe deleghi un compito ad un'altra classe, chiamando un metodo oppure un altro a seconda di certe condizioni. L'utente della classe, in altre parole, chiama sempre lo stesso metodo: la classe decide come gestire la chiamata in base a certe regole. Per verificare il corretto comportamento del tutto avevo bisogno di un meccanismo che mi permettesse di sapere se un certo metodo era stato chiamato oppure no. Il tutto, ovviamente, senza toccarne il codice. Hook::LexWrap è arrivato in soccorso. Ecco cosa ho messo nel codice di test:
my $method_called = 0;
wrap Foo::method, pre => sub { $method_called++ };
$obj->my_method( $db );
is( $method_called, 1, "E` stato chiamato Foo::method" );
Inviato da larsen alle 14:37
| Commenti (2)
|