🐘
PHP & MySQL

PHP unit testing met PHPUnit: praktische uitleg

📅 13 October 2026 ✏️ 13 October 2026 ⏱ 5 min leestijd

Leer hoe je PHPUnit instelt en gebruikt voor PHP unit testing, met concrete stappen, voorbeelden en tips voor een stabiele codebase.

PHP unit testing met PHPUnit betekent dat je kleine, geautomatiseerde tests schrijft die controleren of afzonderlijke stukjes code (functies, methodes) het juiste resultaat opleveren. PHPUnit is het meest gebruikte testframework voor PHP en integreert met Composer. In dit artikel lees je hoe je PHPUnit installeert, je eerste test schrijft, test-driven ontwikkelt en testen uitvoert, ook op een hostingomgeving.

Wat is PHPUnit en waarom testen?

PHPUnit is een testframework waarmee je unit tests schrijft: geïsoleerde tests die een enkele methode of functie controleren zonder afhankelijkheden zoals een database of externe API. Het doel is om regressies vroeg te ontdekken, voordat ze in productie terechtkomen. Een goede testset geeft vertrouwen bij refactoren en maakt je code beter navigeerbaar, omdat tests ook als documentatie dienen.

Unit tests verschillen van functionele of end-to-end tests: ze zijn snel, geïsoleerd en richten zich op logica, niet op de volledige applicatie. Voor webapplicaties combineer je ze vaak met integratietests, maar de basis begint bij PHPUnit.

BroncodePHPUnitTestrapport OKTestrapport Fout

PHPUnit installeren en configureren

PHPUnit installeer je via Composer, de standaard pakketbeheerder voor PHP. Zorg dat je project een composer.json heeft en voer dit uit:

composer require --dev phpunit/phpunit

Vervolgens maak je een configuratiebestand phpunit.xml aan in de root van je project. Hierin geef je aan waar je testbestanden staan, bijvoorbeeld in de map tests/, en welke bootstrap-file wordt geladen (meestal vendor/autoload.php).

Op een gedeelde hostingomgeving test je meestal lokaal of in een staging-omgeving, en zet je alleen de geteste code live. Heb je een VPS of server waarop je via SSH Composer en PHP CLI kunt gebruiken, dan kun je PHPUnit ook direct op de server draaien. Bekijk bij twijfel over PHP-versies en CLI-toegang de instellingen van je webhosting-pakket.

💡 Tip: houd testafhankelijkheden altijd in de require-dev-sectie van composer.json, zodat ze niet meegaan naar je productieomgeving.

Je eerste tests schrijven

Een PHPUnit-test is een klasse die erft van PHPUnitFrameworkTestCase. Elke methode die begint met test wordt automatisch uitgevoerd. Een eenvoudig voorbeeld:

use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase
{
    public function testOptellen()
    {
        $calculator = new Calculator();
        $this->assertEquals(5, $calculator->optellen(2, 3));
    }
}

Binnen een test gebruik je assertions zoals assertEquals, assertTrue en assertNull om te controleren of de uitkomst klopt. Voor code met afhankelijkheden, zoals een database-klasse, gebruik je mocks of stubs, zodat je alleen de logica test en niet de externe verbinding.

1

Installeer PHPUnit via Composer

Voeg het als dev-dependency toe aan je project.

2

Maak een tests-map

Zet hier per klasse een bijbehorend testbestand neer, bijvoorbeeld CalculatorTest.php.

3

Schrijf assertions

Beschrijf per testmethode één duidelijk gedrag dat je controleert.

4

Voer de testsuite uit

Draai vendor/bin/phpunit en controleer het rapport op fouten.

5

Herhaal bij elke wijziging

Draai tests na elke codewijziging om regressies direct op te sporen.

Testen integreren in je workflow

Tests krijgen pas echt waarde als je ze structureel uitvoert. Veel teams draaien PHPUnit automatisch bij elke commit via een CI-pipeline, zodat fouten worden opgemerkt voordat code naar productie gaat. Lokaal kun je ook een pre-commit hook instellen die eerst de testsuite draait.

Let op met gevoelige gegevens in tests: gebruik nooit productiegegevens of echte klantgegevens in een testdatabase. Test e-mailfunctionaliteit bijvoorbeeld met een losse testmailbox in plaats van een live mailbox, zeker als je werkt met zakelijke e-mail die gekoppeld is aan een domein. Zo voorkom je dat testruns per ongeluk echte mail versturen.

Bij het overstappen naar een nieuwe hostingomgeving is het verstandig om je testsuite mee te nemen als controlepunt: draai de tests na migratie opnieuw om te verifiëren dat alles nog werkt zoals verwacht. Bekijk hiervoor de stappen voor overstappen naar Tandata. Vind je tijdens het testen of beheren onverwachte serverinstellingen, dan vind je uitleg en PHP-versiebeheer vaak terug in Plesk, het controlepaneel dat bij Tandata-hosting wordt gebruikt.

Veelgestelde vragen

Kan ik PHPUnit gebruiken op gedeelde hosting?

Testen draai je meestal lokaal of in een staging-omgeving. Heb je SSH-toegang en Composer beschikbaar, dan kun je PHPUnit ook direct op de server uitvoeren.

Wat is het verschil tussen een unit test en een integratietest?

Een unit test controleert een geïsoleerd stukje code zonder externe afhankelijkheden. Een integratietest controleert hoe meerdere onderdelen, zoals database en applicatiecode, samenwerken.

Moet ik elke functie testen?

Focus op functies met belangrijke logica of veel gebruikte onderdelen. Simpele getters en setters hoeven meestal geen aparte test.

Hoe test ik code die een database gebruikt?

Gebruik mocks of een aparte testdatabase, zodat je tests herhaalbaar zijn en geen productiegegevens raken.

Werkt PHPUnit met elke PHP-versie?

PHPUnit-versies zijn gekoppeld aan ondersteunde PHP-versies. Controleer de compatibiliteitstabel van PHPUnit voordat je een versie kiest voor je project.

Conclusie

PHPUnit maakt het mogelijk om PHP-code systematisch te testen, fouten vroeg te ontdekken en met vertrouwen te refactoren. Begin klein met een paar kerntests, bouw dit uit en draai je testsuite structureel bij elke wijziging en na migraties.

Bekijk webhosting →

Was dit artikel nuttig?