Ce didacticiel démontre des tests unitaires avec Guzzle, un client HTTP PHP. Nous explorerons trois approches: des réponses personnalisées fabriquées à la main, en utilisant ServiceClient
avec des fichiers de réponse simulés et en mettant un serveur avec des réponses simulées.
Concepts clés:
ServiceClient
simplifie la moquerie de la réponse, la configuration du manuel réduisant. Configuration:
Ce tutoriel assume la familiarité avec le compositeur. Le fichier composer.json
doit inclure:
{ "require": { "php": ">=5.3.3" }, "require-dev": { "phpunit/phpunit": "4.0.*", "guzzle/guzzle": "~3.7" } }
Exécutez composer install
pour installer des dépendances. Créez un répertoire tests
avec bootstrap.php
et phpunit.xml.dist
:
bootstrap.php
:
<?php error_reporting(E_ALL | E_STRICT); require dirname(__DIR__) . '/vendor/autoload.php';
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>
Créer SitePointGuzzleTest.php
dans le répertoire tests
:
<?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; }
Méthodes de test:
Le tutoriel détaille ensuite trois approches pour moquer les réponses pour les tests, chacune avec des exemples de code et des assertions. Ces exemples montrent comment tester divers aspects de la réponse, y compris les codes d'état, les en-têtes et la teneur en corps. Le tutoriel aborde également les tests de demande asynchrones et la gestion des exceptions. Les exemples de code complets pour chaque méthode (réponses fabriquées à la main, ServiceClient
avec des fichiers simulés et la mise en place d'un serveur) sont fournies dans le code source de l'article d'origine sur GitHub (lien fourni dans l'article d'origine).
Questions fréquemment posées (FAQ):
L'article se termine par une section FAQ complète couvrant les questions communes liées aux tests unitaires avec GuzzlePhp, y compris:
MockHandler
. Les FAQ fournies offrent des exemples de code concis illustrant les meilleures pratiques pour chaque scénario. Cela fait de l'article une ressource précieuse pour les développeurs qui cherchent à améliorer leurs compétences de test unitaire de GuzzzlePhp.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!