Hinweis: Der folgende Artikel hilft Ihnen dabei: PHP-Unit-Tests: So schreiben Sie Ihren ersten Test für WordPress
Tests sind ein routinemäßiger Teil des Lebens. Wir testen alles vor und nach dem Kauf, um sicherzustellen, dass wir die volle Funktionalität eines Produkts erhalten. Wenn Sie eine WordPress-Website haben, prüfen Sie wahrscheinlich, ob sie ordnungsgemäß funktioniert. Und dazu gehört auch PHP, die Skriptsprache von WordPress.
Tests sind unerlässlich, um zu überprüfen, ob der Code ordnungsgemäß funktioniert. In PHP umfasst dies normalerweise Unit-Tests. Lesen Sie weiter, um mehr über PHP-Unit-Tests zu erfahren, wie man diese Tests schreibt und integriert und warum sie wichtig sind.
Was ist Unit-Testing?
Unit-Tests beziehen sich auf eine Ebene des Softwaretests, bei der einzelne Einheiten oder Codekomponenten isoliert getestet werden. Dies gibt uns die Möglichkeit zu überprüfen, ob jede Codeeinheit wie erwartet funktioniert. Eine einzelne Einheit kann eine Codezeile, eine Phrase, eine Funktion oder eine Klasse sein. In PHP und WordPress ist eine Einheit normalerweise eine Funktion oder eine Klasse.
Obwohl es Einheiten in allen Größen geben kann, sind kleinere Tests in der Regel besser. Durch die Verwendung kleinerer Tests können Sie einen detaillierteren Überblick über die Leistung Ihrer Software erhalten. Wenn Sie Tests für kleinere Einheiten verwenden, können Sie außerdem Tausende von Tests in einer Sekunde ausführen, da kleine Tests sehr schnell ausgeführt werden können.
Wir haben erwähnt, dass Unit-Tests isoliert ausgeführte Tests sind. Was bedeutet das also? Das isolierte Testen bedeutet, dass wir jeweils nur eine Einheit testen. Fast alle Arten von Tests erfordern eine Art Isolation, aber beim PHP-Unit-Test ist dies besonders wichtig. Wir isolieren unseren Test, denn wenn ein Test fehlschlägt, lässt sich leichter erkennen, welcher Teil des Codes nicht richtig funktioniert.
Warum sind Unit-Tests wichtig?
Mithilfe von Unit-Tests können wir sicherstellen, dass wir für jede Funktion und einen bestimmten Satz von Einheiten feststellen können, ob die Einheit die richtigen Werte zurückgibt. Es stellt außerdem sicher, dass der Code bei ungültigen Eingaben die Fehler identifizieren und beheben kann. Auf diese Weise können wir Fehler in unseren Algorithmen identifizieren, was die Qualität unseres Codes verbessert.
Wenn Sie weitere Tests schreiben, erstellen Sie schließlich eine Reihe von Tests, die kontinuierlich ausgeführt werden können, um die Qualität Ihrer Arbeit zu ermitteln.
Wenn Sie Unit-Tests in Ihre Software integrieren, werden Sie zwangsläufig Code verwenden, der einfach zu testen ist. Leicht testbarer Code ist für Unit-Tests eine Notwendigkeit, da dadurch sichergestellt wird, dass kleinere und fokussiertere Funktionen einen einzigen Vorgang bereitstellen.
Wenn Sie außerdem gut getesteten Code schreiben, können Sie verhindern, dass die Funktionalität Ihrer Software beeinträchtigt wird, wenn Sie zukünftige Änderungen einarbeiten. Da Sie Ihren Code testen, während Sie ihm Funktionen hinzufügen, verfügen Sie letztendlich über eine Reihe von Tests, die Ihnen dabei helfen, auftretende Codefehler zu beheben.
Darüber hinaus kann schlecht geschriebener Code Ihre Website anfällig für Hackerangriffe machen. Sie sollten daher sicherstellen, dass Sie Ihre Website auf einem sicheren Server hosten.
Ist das Testen von PHP-Einheiten die Zeit und Mühe wert?
Das Schreiben von Unit-Tests kostet in der Tat viel Zeit und Mühe, aber es spart Ihnen viel Zeit, die Sie für die Behebung unerwarteter Fehler aufgewendet hätten. Das Schreiben von Unit-Tests maximiert die Leistung Ihres Programms, indem es von hoher Qualität und fehlerfrei wird.
Das Vertrauen, das sich aus der Abhängigkeit von der Funktionalität Ihres Codes ergibt, macht Unit-Tests auf jeden Fall lohnenswert. Sie können nicht nur sicher sein, dass Ihr Code das tut, wofür er entwickelt wurde, sondern Sie können sich auch darauf verlassen, dass das spätere Hinzufügen neuer Funktionen Ihr bestehendes Projekt nicht sabotiert.
Was Sie beim Schreiben von PHP-Unit-Tests beachten sollten
Es gibt zwei Möglichkeiten, Unit-Tests zu schreiben. Entweder schreiben Sie zuerst die Tests und dann Code, um diese Tests zu bestehen, oder Sie schreiben den Code und testen dann, wie dieser Code funktioniert.
Generell ist es besser, zuerst Tests zu schreiben, wenn Sie ein Projekt von Grund auf neu beginnen. Das liegt daran, dass es schwieriger ist, Tests für eine Anwendung zu entwerfen, die Sie bereits geschrieben haben und deren Funktionsweise Sie kennen. Wenn Sie zuerst die Tests schreiben, dokumentieren Sie, wie die Anwendung funktionieren soll, und das erkennt sofort einen Fehler, wenn der Code nicht ordnungsgemäß funktioniert.
Dennoch ist es unrealistisch zu erwarten, dass Sie am Anfang Komponententests für Ihren gesamten Code schreiben, da dies Dutzende Stunden dauern wird. Stattdessen können Sie pragmatisch vorgehen.
Eine Möglichkeit besteht darin, Komponententests für jeden Fehler zu erstellen, auf den Sie stoßen. Das liegt daran, dass es sich bei Bugs in der Regel um kleine Fehler in Ihrem Code handelt, die es einfacher machen, einen Test dafür zu erstellen. Dieser Ansatz hilft Ihnen auch dabei, die Funktion von Unit-Tests besser zu verstehen, da Sie aus erster Hand sehen, wie der Test einen Fehler identifiziert und Ihnen bei der Behebung hilft.
Sie können auch Unit-Tests für neue Funktionen schreiben, die Sie Ihrer Software hinzufügen möchten. Dies ist eine gute Idee, da der Code für eine Funktion normalerweise spezifisch für diese Funktion ist und sich daher ideal für Unit-Tests eignet. Durch diese Übung lernen Sie auch, auf den Code, den Sie schreiben, Rücksicht zu nehmen, da Sie gezwungen sind, Code zu schreiben, der leicht zu testen ist, was immer eine gute Vorgehensweise ist.
So schreiben Sie Unit-Testfälle in PHP
Um PHPUnit zu installieren, müssen Sie einige Voraussetzungen erfüllen:
- Verwenden Sie die neueste PHP-Version.
- PHPUnit erfordert dom-, JSON-, PCRE-, Reflection- und SPL-Erweiterungen, die standardmäßig aktiviert sind.
Installation (Befehlszeilenschnittstelle)
Laden Sie PHP Archive (PHAR) herunter, um PHPUnit zu erhalten. Um PHAR global zu installieren, können wir die folgenden Befehle in der Befehlszeile verwenden.
$ wget https://phar.phpunit.de/phpunit-6.5.phar
$ chmod +x phpunit-6.5.phar
$ sudo mv phpunit-6.5.phar /usr/local/bin/phpunit
$ phpunit –version
Über Komponist
Wenn Sie Composer auf Ihrem System installiert haben, können Sie es mit einem einzigen Befehl herunterladen.
Composer erfordert –dev phpunit/phpunit
Testen Sie Ihre PHPUnit-Arbeit durch Eingabe
./vendor/bin/phpunit
unter Windows
Vendor\bin\phpunit
Dann sollten Sie Ihre PHP-Einheitenkonfiguration initialisieren:
Durch Eingabe von:./vendor/bin/phpunit –generate-configuration
Oder in Windows-Maschinen: Vendor\bin\phpunit –generate-configuration
Es werden drei Fragen angezeigt. Geben Sie einfach die Eingabetaste ein und die Dateien werden automatisch generiert.
Bootstrap-Skript (relativ zum oben gezeigten Pfad; Standard: Vendor/autoload.php):
Testverzeichnis (relativ zum oben gezeigten Pfad; Standard: Tests):
Quellverzeichnis (relativ zum oben gezeigten Pfad; Standard: src):
Cache-Verzeichnis (relativ zum oben gezeigten Pfad; Standard: .phpunit.cache):
phpunit.xml in /php_test generiert.
Sie sollten das Verzeichnis .phpunit.cache von der Versionskontrolle ausschließen.
Beginnen wir mit unserem ersten Unit-Test
Erstellen Sie zunächst eine Datei und benennen Sie sie. Für dieses Beispiel nennen wir es HelloworldTest.php
mkdir src-Tests
Codetests/HelloworldTest.php
Dadurch wird Visual Studio-Code in Ihrer Datei geöffnet. Schreiben Sie dann den folgenden Code:
Führen Sie den folgenden Befehl in Ihrer Befehlszeile aus, um den Komponententest zu starten
./vendor/bin/phpunit
Auf Windows-Rechnern:Vendor\bin\phpunit
Hier ist die Ausgabe für den Lauftest:
Versuchen wir nun, eine Klasse zu testen
Erstellen Sie zunächst die Datei im Ordner src/, nennen Sie sie Hello.php und legen Sie den Namespace App fest.
Dann sollten wir die folgende Datei benötigen, wie auf dem Foto unten dokumentiert:
Lassen Sie uns einen Test durchführen und die Ergebnisse sehen.
Wie das Bild zeigt, schlägt die Behauptung fehl, da die beiden Zeichenfolgen identisch sind. Wir können die erwartete Variable wieder in „helloworld“ umwandeln und die Behauptung wie im folgenden Beispiel auf „true“ setzen:
Schauen wir uns das Ergebnis der Tests an.
Wie wir auf dem Bild sehen können, haben wir jetzt eine Behauptung.
Jetzt wissen Sie
Tests sind unerlässlich, wenn wir überprüfen möchten, ob unser Code ordnungsgemäß funktioniert. Unit-Tests sind eine Stufe des Softwaretests, bei der einzelne Einheiten oder Komponenten unseres Codes isoliert getestet werden.
Beim Unit-Test von WordPress ist es wichtig, den Test isoliert durchzuführen, denn wenn ein Unit-Test fehlschlägt, lässt sich leichter erkennen, welcher Teil des Codes nicht richtig funktioniert.
Unit-Tests sind ein langwieriger Prozess, aber für eine leistungsstarke Website unerlässlich.
Wie Sie gesehen haben, bieten Ihnen gut getesteter Code und ein sicherer Webhost Zuverlässigkeit und wertvolle Einblicke in Leistung und Geschwindigkeit.
Möchten Sie diese auf Ihrer Website implementieren?
Schauen Sie sich unsere vollständig verwalteten WooCommerce-Hosting-Pläne an – die über integrierte automatisierte Tests verfügen.