Co je PHPUnit, jak funguje a jak se s ním pracuje?

Co je PHPUnit, jak funguje a jak se s ním pracuje?

PHPUnit je populární testovací framework pro jazyk PHP, který slouží k psaní a spouštění automatizovaných testů. Je neocenitelným nástrojem při vývoji webových aplikací, protože umožňuje vývojářům ověřit, že jejich kód funguje správně a zůstává stabilní i po budoucích změnách.

Proč používat PHPUnit?

  • Automatizace testování: Místo manuálního testování můžete jedním příkazem spustit stovky testů.
  • Odhalení chyb včas: Testy upozorní na chyby dřív, než se dostanou do produkce.
  • Snadnější refaktoring: Díky testům víte, že vaše úpravy nerozbily stávající funkčnost.

Instalace PHPUnit

Nejčastější způsob instalace je pomocí Composeru:

composer require --dev phpunit/phpunit

Po instalaci můžete PHPUnit spustit pomocí příkazu:

./vendor/bin/phpunit

Jak funguje PHPUnit

PHPUnit funguje tak, že spouští metody, které definujete jako testy. Každý test by měl být nezávislý a měl by testovat jednu konkrétní část kódu. PHPUnit očekává, že vaše testovací třídy budou dědit z PHPUnit\Framework\TestCase.

Reálný příklad: testování vlastní PHP třídy

V následujícím příkladu vytvoříme jednoduchou třídu Kalkulacka s metodami pro sčítání a dělení, a k ní napíšeme odpovídající testy.

1. Třída, kterou chceme testovat – Kalkulacka.php

<?php

class Kalkulacka
{
    public function secti(int $a, int $b): int
    {
        return $a + $b;
    }

    public function vydel(int $a, int $b): float
    {
        if ($b === 0) {
            throw new InvalidArgumentException("Nelze dělit nulou.");
        }
        return $a / $b;
    }
}

2. Testovací třída – tests/KalkulackaTest.php

<?php

use PHPUnit\Framework\TestCase;

require_once __DIR__ . '/../Kalkulacka.php';

class KalkulackaTest extends TestCase
{
    private Kalkulacka $kalkulacka;

    protected function setUp(): void
    {
        $this->kalkulacka = new Kalkulacka();
    }

    public function testSectiVraciSpravnySoučet()
    {
        $vysledek = $this->kalkulacka->secti(3, 4);
        $this->assertEquals(7, $vysledek);
    }

    public function testVydelVraciSpravnyVysledek()
    {
        $vysledek = $this->kalkulacka->vydel(10, 2);
        $this->assertEquals(5.0, $vysledek);
    }

    public function testVydelVyhodiVyjimkuPriDeleniNulou()
    {
        $this->expectException(InvalidArgumentException::class);
        $this->kalkulacka->vydel(10, 0);
    }
}

3. Spuštění testů

./vendor/bin/phpunit tests/KalkulackaTest.php

Výstup testu


PHPUnit 10.x by Sebastian Bergmann and contributors.

...                                                             3 / 3 (100%)

Time: 00:00.012, Memory: 6.00 MB

OK (3 tests, 3 assertions)

Konfigurační soubor phpunit.xml

Pro větší projekty je praktické vytvořit soubor phpunit.xml, kde nastavíte konfiguraci jako výchozí adresář s testy, autoloading atd.


<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="Aplikace">
            <directory>./tests</directory>
        </testsuite>
    </testsuites>
</phpunit>

Nejužitečnější asserty

  • assertEquals($očekávaná, $skutečná) – porovná dvě hodnoty
  • assertTrue($podmínka) – ověří, že podmínka je pravdivá
  • assertFalse($podmínka) – ověří, že podmínka je nepravdivá
  • assertInstanceOf($třída, $objekt) – ověří typ objektu

Závěr

PHPUnit je velmi silný nástroj pro testování PHP aplikací. Pomáhá psát spolehlivější a kvalitnější kód a je základem tzv. test-driven developmentu (TDD). Pokud s testováním začínáte, doporučujeme začít s jednoduchými testy a postupně rozšiřovat pokrytí kódu.

Poslední aktualizace článku proběhla 10.4.2025.

OBJEDNAT SEO OPTIMALIZACI

Líbí se vám článek? Dejte mu 5 hvězd!

Aktuální hodnocení článku 4.7/5 (23 hlasujících)

avatar autora Tomáš Rohlena
Tomáš Rohlena je zkušený specialista na SEO, vývoj webových stránek, portálů a digitálních aplikací, který propojuje technologické know-how s hlubokým porozuměním online marketingu a provozu webových projektů. Díky mnohaletým zkušenostem dokáže nejen optimalizovat weby pro maximální viditelnost ve vyhledávačích, ale také navrhovat efektivní strategie pro zlepšení konverzí a dlouhodobé udržitelnosti online projektů.
ikona sociální sítě ikona sociální sítě

Komentáře

Přidejte první komentář ke článku Co je PHPUnit, jak funguje a jak se s ním pracuje?.

Přidat komentář

Kde je článek zařazen?

Kategorie: Programování
Štítky: php, web