Codeception für PHP: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Codeception für PHP: Komplettguide mit Beispielen

1. Was ist Codeception und warum braucht man es?

Codeception ist ein vollwertiges Testframework für PHP-Anwendungen, das die besten Praktiken aus Unit-, Funktions-, Akzeptanz- (Acceptance) und Integrationstests vereint. Im Gegensatz zum standardmäßigen PHPUnit bietet Codeception eine einheitliche, intuitiv verständliche API für alle Testarten sowie leistungsstarke Werkzeuge für die Arbeit mit Browsern (via WebDriver oder PhpBrowser), Datenbanken, REST-APIs und sogar JavaScript.

Das Hauptziel von Codeception ist es, das Schreiben von Tests so einfach und lesbar wie möglich zu machen. Das Framework verwendet eine BDD-ähnliche Syntax (Behavior-Driven Development), bei der Tests in natürlicher Sprache mit Aktionsmethoden beschrieben werden: $I->amOnPage('/login'), $I->fillField('email', 'user@example.com'), $I->click('Login'). Dadurch können nicht nur Entwickler, sondern auch Tester, Analysten und Projektmanager leicht verstehen, was genau geprüft wird.

Codeception ist unverzichtbar in Projekten, die umfassende Tests erfordern – von der Überprüfung einzelner Klassen (Unit-Tests) bis zur Simulation echter Benutzeraktionen im Browser (Akzeptanztests). Es unterstützt gängige Frameworks (Laravel, Symfony, Yii2, Zend), verwaltet automatisch Datenbanktransaktionen, erstellt bei Fehlern Screenshots und generiert detaillierte Berichte. Wenn Sie die Codequalität verbessern und die Zeit für Regressionstests verkürzen möchten, ist Codeception Ihr zuverlässiger Partner.

2. Installation

Codeception wird über Composer, den Standard-Paketmanager für PHP, verteilt. Stellen Sie sicher, dass PHP 7.4 oder höher und Composer installiert sind.

Führen Sie im Terminal im Stammverzeichnis Ihres Projekts aus:

composer require --dev codeception/codeception

Nach der Installation können Sie Codeception im Projekt initialisieren:

vendor/bin/codecept init

Dieser Befehl erstellt die grundlegende Verzeichnisstruktur: tests/ mit den Unterordnern unit, functional, acceptance sowie die Konfigurationsdatei codeception.yml.

Für browsergestützte Tests installieren Sie zusätzlich das WebDriver-Modul (falls Sie Selenium oder ChromeDriver verwenden möchten):

composer require --dev codeception/module-webdriver

Für REST-API-Tests installieren Sie das REST-Modul:

composer require --dev codeception/module-rest

3. Schnellstart – Minimales funktionierendes Beispiel

Erstellen wir einen einfachen Unit-Test zur Überprüfung einer mathematischen Funktion. Nach der Initialisierung (codecept init) haben Sie bereits die Datei tests/unit.suite.yml. Bearbeiten wir sie, um das Modul Asserts zu aktivieren:

# tests/unit.suite.yml
actor: UnitTester
modules:
    enabled:
        - Asserts

Jetzt erstellen wir die Testdatei tests/unit/MathTest.php:

<?php
use Codeception\Test\Unit;

class MathTest extends Unit
{
    protected UnitTester $tester;

    public function testAddition()
    {
        $result = 2 + 3;
        $this->tester->assertEquals(5, $result, '2 + 3 sollte 5 ergeben');
    }

    public function testSubtraction()
    {
        $result = 10 - 4;
        $this->tester->assertGreaterThan(5, $result, '10 - 4 sollte größer als 5 sein');
    }
}

Führen Sie den Test aus:

vendor/bin/codecept run unit

Sie sollten eine grüne Ausgabe sehen.

Empfehlungen