Heim > Backend-Entwicklung > PHP-Tutorial > Einheitstest mit Guzzle

Einheitstest mit Guzzle

Joseph Gordon-Levitt
Freigeben: 2025-02-21 10:08:11
Original
830 Leute haben es durchsucht

Unit Testing with Guzzle

Dieses Tutorial zeigt Unit -Tests mit Guzzle, einem PHP -HTTP -Client. Wir werden drei Ansätze untersuchen: handgefertigte benutzerdefinierte Antworten, verwenden ServiceClient mit Mock-Antwortdateien und erläutern einen Server mit Scheinantworten.

Schlüsselkonzepte:

  • Effiziente Unit -Tests mit GuzzlePhP beinhaltet die Einrichtung einer Testumgebung mit Composer, Konfigurieren von Phpunit und Erstellen einer Testklasse.
  • handgefertigte benutzerdefinierte Antworten simulieren verschiedene API-Szenarien und Stärkung der Unit-Tests.
  • ServiceClient vereinfacht die Antwortverspottung und reduziert das manuelle Setup.
  • Enqueueing einen Server mit Mockantworten simuliert reale Server -Interaktionen für mehr integrierte Tests.
  • gründliche Tests deckt Header, Körperinhalt und asynchrone Forderungen für zuverlässige Webdienst -Clients ab.
  • .

Setup:

composer.json In diesem Tutorial vertraut mit Composer. Die

Datei sollte enthalten:
{
    "require": {
        "php": ">=5.3.3"
    },
    "require-dev": {
        "phpunit/phpunit": "4.0.*",
        "guzzle/guzzle": "~3.7"
    }
}
Nach dem Login kopieren

composer install Ausführen tests, um Abhängigkeiten zu installieren. Erstellen Sie ein bootstrap.php Verzeichnis mit phpunit.xml.dist und

:

bootstrap.php

:
<?php error_reporting(E_ALL | E_STRICT);
require dirname(__DIR__) . '/vendor/autoload.php';
Nach dem Login kopieren

phpunit.xml.dist

:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./bootstrap.php" colors="true">
    <testsuites>
        <testsuite name="Guzzle Tests">
            <directory suffix="Test.php"></directory>
        </testsuite>
    </testsuites>
</phpunit>
Nach dem Login kopieren

SitePointGuzzleTest.php erstellen tests im Verzeichnis

:
<?php
use Guzzle\Tests\GuzzleTestCase;
use Guzzle\Plugin\Mock\MockPlugin;
use Guzzle\Http\Message\Response;
use Guzzle\Http\Client as HttpClient;
use Guzzle\Service\Client as ServiceClient;
use Guzzle\Http\EntityBody;

class SitePointGuzzleTest extends GuzzleTestCase
{
    protected $_client;
}
Nach dem Login kopieren

Testmethoden:

ServiceClient Das Tutorial beschreibt dann drei Ansätze zur Verspottung von Antworten zum Testen mit Codebeispielen und Behauptungen. Diese Beispiele zeigen, wie verschiedene Aspekte der Antwort getestet werden, einschließlich Statuscodes, Header und Körpergehalt. Das Tutorial berührt auch die asynchronen Anfragetests und die Ausnahmebehandlung. Die vollständigen Codebeispiele für jede Methode (handgefertigte Antworten,

mit Mock-Dateien und Enqueueing einen Server) werden im Quellcode des ursprünglichen Artikels auf GitHub (Link im ursprünglichen Artikel angegeben) bereitgestellt.

häufig gestellte Fragen (FAQs):

Der Artikel endet mit einem umfassenden FAQ
  • spöttische Antworten mit MockHandler.
  • verspottet
  • Integrieren von GuzzlePhp in Phpunit.
  • Handhabungsausnahmen.
  • asynchrone Anfragen testen.
  • Testkörper und Header testen.
  • Tests nach Anfragen, Dateien -Uploads, Umleitungen und Cookies.

Die bereitgestellten FAQs bieten prägnante Code -Beispiele, die Best Practices für jedes Szenario veranschaulichen. Dies macht den Artikel zu einer wertvollen Ressource für Entwickler, die ihre Fähigkeiten zur Prüfung der Guzzlephp -Unit -Tests verbessern möchten.

Das obige ist der detaillierte Inhalt vonEinheitstest mit Guzzle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage