Què és PHPUnit i perquè el feim servir?¶
Definició
PHPUnit és un framework per escriure i executar proves unitàries en PHP. Aquest tipus de proves permeten comprovar que les parts més petites del teu codi (com ara funcions o mètodes) funcionen correctament de manera independent.
🧩 Què és una prova unitaria¶
Una prova unitaria és un fragment de codi que comprova el comportament d’una sola unitat (una funció o classe). L’objectiu és assegurar-se que cada part fa exactament el que ha de fer, sense dependre d’altres parts del programa.
Per exemple, si tens una funció que suma dos números, la prova verificarà que el resultat sigui correcte:
<?php
use PHPUnit\Framework\TestCase;
class CalculatorTest extends TestCase
{
public function testSum()
{
$calc = new Calculator();
$result = $calc->sum(2, 3);
$this->assertEquals(5, $result);
}
}
Aquí:
- La classe CalculatorTest extén
TestCase, la classe base de PHPUnit. - El mètode testSum() és una prova unitària.
- assertEquals(5, $result) comprova que el resultat obtingut sigui igual a 5.
⚙️ Com funciona PHPUnit¶
- Instal·lació:
- Amb Composer:
composer require --dev phpunit/phpunit
- Amb Composer:
- Creació de proves:
- Crea una carpeta
tests/al teu projecte. - Escriu classes de proves com l’exemple anterior.
- Crea una carpeta
- Execució:
- Des del terminal executa:
./vendor/bin/phpunit
- PHPUnit buscarà totes les classes que acaben amb Test i executarà els seus mètodes que comencen per
test.
🧪 Altres conceptes útils¶
- setUp(): s’executa abans de cada prova (per preparar dades o objectes comuns).
- tearDown(): s’executa després de cada prova.
- Asercions (Assertions): funcions que comproven condicions (
assertEquals,assertTrue,assertFalse, etc.). - Data providers: permeten provar amb diversos conjunts de dades sense repetir codi.
🧠 En resum¶
- PHPUnit t’ajuda a automatitzar les comprovacions del teu codi PHP.
- Millora la seguretat, manté la qualitat i evita regressions.
- Ideal tant per a projectes petits com per a aplicacions grans.
➕ informació
Referències i fonts
https://openwebinars.net/blog/que-es-phpunit/
https://escuela.it/cursos/curso-testing-php-php-unit
https://styde.net/realizando-nuestra-primera-prueba-con-phpunit/
https://www.youtube.com/watch?v=VAy3PNcoI3c
https://symfonycasts.com/es/screencast/phpunit/first-test
https://es.linkedin.com/advice/3/how-do-you-use-php-unit-testing-prevent-detect?lang=es
https://cosasdedevs.com/posts/testar-aplicaciones-php-phpunit/
https://www.threads.com/@pablogarciajc/post/DPADMrnjLue/testing-en-php-cómo-usar-phpunit-para-realizar-pruebas-efectivas-entra-al-enlace
https://www.youtube.com/watch?v=VCMskMdQOOU
https://www.youtube.com/watch?v=XVORXA0Io3E