Pruebas TODO

Vamos a hacer una prueba mas. Supongamos que tengo la intención de añadir una función GenKnap que genere aleatoriamente un problema de la mochila. Como no esta hecho, lo declaramos como una prueba a hacer ( TODO ). Es decir, se trata de un test que fallará, pero que se espera que deje de hacerlo en el futuro.

42 TODO: {
43   local $TODO = "Randomly generated problem";
44   can_ok('Algorithm::Knap01DP', 'GenKnap');
45 }
Primero una ejecución a mano:
~/Lperl/src/threads/knapsack/Algorithm-Knap01DP/t$ perl \
-I/home/lhp//Lperl/src/threads/knapsack/Algorithm-Knap01DP/lib 01MartelloAndTothBook.t
1..11
ok 1 - use Algorithm::Knap01DP qw/Knap01DP ReadKnap/;;
ok 2 - ReadKnap knap21.dat
ok 3 - Knap01DP knap21.dat
ok 4 - ReadKnap knap22.dat
ok 5 - Knap01DP knap22.dat
ok 6 - ReadKnap knap23.dat
ok 7 - Knap01DP knap23.dat
ok 8 - ReadKnap knap25.dat
ok 9 - Knap01DP knap25.dat
ok 10
not ok 11 - Algorithm::Knap01DP->can('GenKnap') # TODO Randomly generated problem
#     Failed (TODO) test (01MartelloAndTothBook.t at line 45)
#     Algorithm::Knap01DP->can('GenKnap') failed
Obsérvese que: Sigue una ejecución con make test (un directorio por encima):
~/Lperl/src/threads/knapsack/Algorithm-Knap01DP$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" \
                                "-e" "test_harness(0, 'blib/lib', 'blib/arch')" \
                                t/*.t
t/01MartelloAndTothBook....ok
All tests successful.
Files=1, Tests=11,  0 wallclock secs ( 0.09 cusr +  0.00 csys =  0.09 CPU)
Observa como ahora se informa que todas las pruebas fueron correctamente. Se ha ocultado que hay una prueba TODO y su fallo no se considera significativo para la posible instalación del módulo. De este modo el directorio de pruebas puede ser utilizado como lista recordatorio de objetivos y requerimientos a realizar.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19