Les proves són una part essencial del desenvolupament de programari, ja que asseguren que el codi funcioni com s'espera i ajuden a detectar errors abans que el programari es desplegui en producció. En aquest mòdul, aprendrem com escriure i executar proves en Perl utilitzant diversos mòduls de prova.
Continguts
Introducció a les Proves
Les proves són scripts que verifiquen que el codi funcioni correctament. Hi ha diversos tipus de proves, incloent-hi:
- Proves unitàries: Verifiquen el funcionament de petites unitats de codi, com ara funcions o mètodes.
- Proves d'integració: Verifiquen que diferents parts del sistema funcionin correctament quan es combinen.
- Proves funcionals: Verifiquen que el sistema compleixi amb els requisits funcionals.
Mòduls de Prova en Perl
Perl té diversos mòduls per a la realització de proves. Els més comuns són:
Test::Simple
: Proporciona una manera senzilla de fer proves.Test::More
: Una extensió deTest::Simple
amb més funcionalitats.Test::Exception
: Permet provar excepcions.Test::MockObject
: Permet crear objectes simulats per a proves.
Comparació de Mòduls de Prova
Mòdul | Descripció | Ús Principal |
---|---|---|
Test::Simple |
Proves senzilles amb una interfície mínima | Proves unitàries bàsiques |
Test::More |
Proves més avançades amb més funcionalitats | Proves unitàries i d'integració |
Test::Exception |
Proves d'excepcions | Verificació de gestió d'errors |
Test::MockObject |
Creació d'objectes simulats per a proves | Proves d'integració i funcionals |
Escrivint Proves Bàsiques
Exemple amb Test::Simple
Explicació:
use Test::Simple tests => 1;
indica que hi haurà una prova.ok(1 + 1 == 2, 'Sumem 1 i 1');
comprova que 1 + 1 és igual a 2 i mostra el missatge 'Sumem 1 i 1'.
Exemple amb Test::More
Explicació:
use Test::More tests => 2;
indica que hi haurà dues proves.is(1 + 1, 2, 'Sumem 1 i 1');
comprova que 1 + 1 és igual a 2.isnt(1 + 1, 3, '1 + 1 no és 3');
comprova que 1 + 1 no és igual a 3.
Proves Avançades
Proves d'Excepcions amb Test::Exception
use Test::More tests => 1; use Test::Exception; dies_ok { die "Error!" } 'Prova que l'excepció es llança';
Explicació:
dies_ok { die "Error!" } 'Prova que l'excepció es llança';
comprova que el bloc de codi llança una excepció.
Proves amb Objectes Simulats amb Test::MockObject
use Test::More tests => 1; use Test::MockObject; my $mock = Test::MockObject->new(); $mock->set_true('method_name'); ok($mock->method_name(), 'El mètode simulat retorna true');
Explicació:
Test::MockObject->new();
crea un objecte simulat.$mock->set_true('method_name');
defineix que el mètodemethod_name
retornaràtrue
.ok($mock->method_name(), 'El mètode simulat retorna true');
comprova que el mètode simulat retornatrue
.
Execució de Proves
Les proves es poden executar des de la línia de comandes utilitzant el comandament prove
:
També es poden executar directament amb Perl:
Exercicis Pràctics
Exercici 1: Prova Bàsica
Escriu una prova que comprovi que la funció sum
retorna la suma correcta de dos nombres.
Exercici 2: Prova d'Excepció
Escriu una prova que comprovi que la funció divide
llança una excepció quan es divideix per zero.
# divide_test.t use Test::More tests => 1; use Test::Exception; require './divide.pl'; dies_ok { divide(1, 0) } 'Prova que l'excepció es llança en dividir per zero';
Conclusió
En aquest mòdul, hem après la importància de les proves en el desenvolupament de programari i com utilitzar diversos mòduls de prova en Perl per escriure i executar proves. Les proves ajuden a assegurar que el nostre codi funcioni correctament i a detectar errors abans que es despleguin en producció. Practicar l'escriptura de proves és essencial per convertir-se en un programador més eficient i fiable.
Curs de Programació en Perl
Mòdul 1: Introducció al Perl
Mòdul 2: Programació Bàsica en Perl
Mòdul 3: Treballant amb Dades
Mòdul 4: Programació Intermèdia en Perl
Mòdul 5: Programació Avançada en Perl
- Expressions Regulars Avançades
- Interacció amb Bases de Dades amb DBI
- Programació Web amb Perl
- Multifil