Rumah > pembangunan bahagian belakang > tutorial php > Ujian Unit dengan Guzzle

Ujian Unit dengan Guzzle

Joseph Gordon-Levitt
Lepaskan: 2025-02-21 10:08:11
asal
821 orang telah melayarinya

Unit Testing with Guzzle

Tutorial ini menunjukkan ujian unit dengan Guzzle, pelanggan PHP HTTP. Kami akan meneroka tiga pendekatan: respons tersuai yang dibuat tangan, menggunakan

dengan fail respons yang mengejek, dan memupuk pelayan dengan respons mengejek. ServiceClient

Konsep Utama:

    Ujian unit yang cekap dengan GuzzlePhp melibatkan menubuhkan persekitaran ujian menggunakan komposer, mengkonfigurasi phpunit, dan membuat kelas ujian.
  • Respons tersuai buatan tangan mensimulasikan pelbagai senario API, menguatkan ujian unit.
  • Memudahkan respon mengejek, mengurangkan persediaan manual. ServiceClient
  • enqueueing pelayan dengan respons mengejek mensimulasikan interaksi pelayan sebenar untuk ujian yang lebih bersepadu.
  • Ujian menyeluruh meliputi tajuk, kandungan badan, dan panggilan tak segerak untuk pelanggan perkhidmatan web yang boleh dipercayai.

Persediaan:

Tutorial ini menganggap kebiasaan dengan komposer. Fail

hendaklah termasuk: composer.json

{
    "require": {
        "php": ">=5.3.3"
    },
    "require-dev": {
        "phpunit/phpunit": "4.0.*",
        "guzzle/guzzle": "~3.7"
    }
}
Salin selepas log masuk
RUN untuk memasang kebergantungan. Buat direktori

dengan composer install dan tests: bootstrap.php phpunit.xml.dist

:

bootstrap.php

<?php error_reporting(E_ALL | E_STRICT);
require dirname(__DIR__) . '/vendor/autoload.php';
Salin selepas log masuk
:

phpunit.xml.dist

create
<?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>
Salin selepas log masuk
dalam direktori

: SitePointGuzzleTest.php 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;
}
Salin selepas log masuk
Kaedah ujian:

Tutorial kemudian memperincikan tiga pendekatan untuk mengejek respons untuk ujian, masing -masing dengan contoh kod dan pernyataan. Contoh -contoh ini menunjukkan cara menguji pelbagai aspek tindak balas, termasuk kod status, tajuk, dan kandungan badan. Tutorial ini juga menyentuh ujian permintaan dan pengecualian permintaan tak segerak. Contoh kod penuh untuk setiap kaedah (respons yang dibuat tangan,

dengan fail mock, dan enqueueing pelayan) disediakan dalam kod sumber artikel asal pada GitHub (pautan yang disediakan dalam artikel asal).

ServiceClient

Soalan Lazim (Soalan Lazim):

Artikel ini disimpulkan dengan bahagian FAQ yang komprehensif yang meliputi soalan umum yang berkaitan dengan ujian unit dengan GuzzlePhp, termasuk:

Respons Mocking Menggunakan
    .
  • MockHandler Mengintegrasikan BuzzlePhp dengan phpunit.
  • Pengendalian Pengendalian.
  • Menguji permintaan asynchronous.
  • Menguji badan dan tajuk tindak balas.
  • Menguji permintaan pos, muat naik fail, pengalihan, dan kuki.
  • FAQ yang disediakan menawarkan contoh kod ringkas yang menggambarkan amalan terbaik untuk setiap senario. Ini menjadikan artikel itu sebagai sumber yang berharga bagi pemaju yang ingin meningkatkan kemahiran ujian unit GuzzlePhp mereka.

Atas ialah kandungan terperinci Ujian Unit dengan Guzzle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan