ガズルによる単体テスト

Joseph Gordon-Levitt
リリース: 2025-02-21 10:08:11
オリジナル
831 人が閲覧しました

Unit Testing with Guzzle

このチュートリアルでは、PHP HTTPクライアントであるGuzzleを使用したユニットテストを示しています。 3つのアプローチを調べます。手作りされたカスタム応答、モック応答ファイルを使用して

を使用し、モック応答を使用してサーバーをエンキューする。 ServiceClient

重要な概念:

GuzzlephPを使用した効率的な単体テストでは、Composerを使用したテスト環境のセットアップ、PHPunitの構成、およびテストクラスの作成が含まれます。

手作りのカスタム応答は、さまざまなAPIシナリオをシミュレートし、単体テストを強化します。
  • 応答のモッキングを簡素化し、手動のセットアップを削減します モック応答を使用してサーバーをエンキューすると、より統合されたテストのために実際のサーバーインタラクションをシミュレートします。
  • 徹底的なテストでは、ヘッダー、ボディコンテンツ、および信頼できるWebサービスクライアントに対する非同期の呼び出しをカバーしています。
  • セットアップ:ServiceClient
  • このチュートリアルは、作曲家に精通していることを前提としています。
  • ファイルには以下を含める必要があります
  • 依存関係をインストールするには
  • 実行します。
および

ディレクトリを作成します

composer.json

{
    "require": {
        "php": ">=5.3.3"
    },
    "require-dev": {
        "phpunit/phpunit": "4.0.*",
        "guzzle/guzzle": "~3.7"
    }
}
ログイン後にコピー

composer install tests bootstrap.phpphpunit.xml.distディレクトリで

を作成します:

bootstrap.php

<?php error_reporting(E_ALL | E_STRICT);
require dirname(__DIR__) . '/vendor/autoload.php';
ログイン後にコピー
テスト方法:

phpunit.xml.dist

チュートリアルでは、テストのための応答をock笑する3つのアプローチを詳しく説明します。それぞれにコードの例とアサーションがあります。 これらの例は、ステータスコード、ヘッダー、ボディコンテンツなど、応答のさまざまな側面をテストする方法を示しています。 このチュートリアルでは、非同期リクエストのテストと例外処理についても触れています。 各メソッドの完全なコードの例(手作りされた応答、模擬ファイルを使用した
<?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>
ログイン後にコピー
、およびサーバーのエンキュー)は、GitHubの元の記事のソースコード(元の記事に記載されているリンク)内に提供されています。

SitePointGuzzleTest.phpよくある質問(FAQ):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;
}
ログイン後にコピー
この記事は、guzzlephpを使用した単位テストに関連する一般的な質問をカバーする包括的なFAQセクションで終了します。

Guzzlephpとphpunitを統合します。

処理例外。

非同期リクエストのテスト。ServiceClient

応答本体とヘッダーのテスト

投稿リクエスト、ファイルのアップロード、リダイレクト、およびCookieのテスト

提供されたFAQは、各シナリオのベストプラクティスを示す簡潔なコードの例を提供します。 これにより、この記事は、GuzzlephPの単位テストスキルを改善しようとする開発者にとって貴重なリソースになります。

以上がガズルによる単体テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート