scanner
,
si la entrada tiene un carácter ilegal se ejecutarán las líneas
26 elsif (/\G\s*(.)/gc) { 27 Error::fatal "Caracter invalido: $1\n"; 28 }lo que causa la parada del programa de prueba, al ejecutarse
fatal
el cuál llama a croak
.
sub fatal { my $msg = join " ", @_; croak("Error: $msg\n"); }El objetivo es lograr que el programa de pruebas continúe ejecutando las subsiguientes pruebas.
Para ello utilice eval
y la variable especial $@
para controlar que el
programa .t
no termine prematuramente.
Repase la sección 3.10.3,
el capítulo
6.16 y mas específicamente la sección
6.16.7 del capítulo sobre construcción de módulos.
Además lea el capítulo
Test Now, test Forever
'' del libro de Scott [12].