2009-02-02 21 views
59

He estado haciendo algunos programas OO Perl y me preguntaba: ¿cuál es la mejor manera de realizar pruebas unitarias?¿Cómo puedo hacer pruebas unitarias en Perl?

Hasta ahora he estado usando el módulo Test::Simple para realizar pruebas, pero me parece insuficiente para lo que deseo.

¿Me pueden indicar algunos módulos agradables para eso?

Respuesta

47

me gustaría añadir mi voto a recoger Test::More antes de seguir adelante en las pruebas de Perl. El Perl testing community está bastante bien unido alrededor del Test Anything Protocol, y querrá jugar con Test::More para comprender cómo funciona y cómo las herramientas como prove y Test::Harness::Archive pueden ayudar a automatizar y distribuir las pruebas.

Si quiere simplemente "saltar directamente", creo que Test::Class proporciona instalaciones de xTest con un backend TAP. No lo he usado en absoluto (soy una persona Test::More), pero es very highly rated.

+1

¡Gran presentación, gracias! Estoy acostumbrado a hacer pruebas unitarias para python y php, pero pronto estaré involucrado en un proyecto de perl, tu publicación definitivamente me ayuda a comenzar :) – warp

18

Prueba :: More debería ofrecerle más dinero por su dinero una vez que se acostumbre a Test :: Simple.

También puede hacer referencia a esta discusión anterior por su servidor si desea más información: how-can-i-implement-tdd-in-perl

+0

Estoy buscando algo para cerca de JUnit o NUnit con un método de configuración y desmontaje, etc ... ¿tengo alguna idea? – mandel

+0

@mandel ¿se está ejecutando en la plataforma winx? – melaos

+0

sí, estoy probando en un Win Server o en un escritorio XP – mandel

12

A juzgar por sus comentarios sobre la respuesta de melaos, yo diría que Test::Class o Test::Unit es lo que está buscando.

+0

Prueba :: La unidad está prácticamente abandonada a partir de 2016 - http: // perlunit .sourceforge.net/dice "tan recientemente como 2011 ..". –

+0

Ver http://stackoverflow.com/questions/2876091/what-is-the-preferred-unit-testing-framework-for-perl/39605597#39605597 –

11

ejemplo de prueba simple:

uso
#!/usr/bin/perl -w 

use strict; 
use warnings 'all'; 
use Test::More plan => 4; # or use Test::More 'no_plan'; 

use_ok('My::Module', 'Loaded My::Module'); 
ok(my $obj = My::Module->new(), 'Can create instance of My::Module'); 

ok($obj->value('hello'), 'Set value to hello'); 
is($obj->value => 'hello', 'value is still hello');