-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 

« Pugs! | Home | Pending issue reminder system »

"sufficiently advanced technology"
11.03.05

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 il 11.03.05 14:37
Ti è piaciuto questo articolo? Iscriviti al feed!

Inviato da rff il 22.03.05 21:53

che progetto?

Inviato da larsen il 22.03.05 23:39

Robe di lavoro










Devo ricordare i dati personali?






D:
Sull'autore...
D:
La ML di Perl.it
Iscriviti! mongers@lists.perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
D:
Annunci Google