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::Simpleamb 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_nameretornarà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
