Salta el contingut

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

  1. Instal·lació:
    • Amb Composer: composer require --dev phpunit/phpunit
  2. Creació de proves:
    • Crea una carpeta tests/ al teu projecte.
    • Escriu classes de proves com l’exemple anterior.
  3. 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