Ini adalah port perpustakaan VCR Ruby ke PHP.
Rekam interaksi HTTP rangkaian pengujian Anda dan putar ulang selama pengujian berikutnya berjalan untuk pengujian yang cepat, deterministik, dan akurat. Sedikit dokumentasi dapat ditemukan di situs php-vcr.
Penafian: Melakukan hal ini di PHP tidak semudah dalam bahasa pemrograman yang mendukung patching monyet (saya melihat Anda, Ruby)
$http_response_header
lihat #96)VCRVCR::turnOn();
di tests/bootstrap.php
AndaVCRVCR::turnOn();
di tests/bootstrap.php
AndaMenggunakan panggilan metode statis:
class VCRTest extends TestCase
{
public function testShouldInterceptStreamWrapper ()
{
// After turning on the VCR will intercept all requests
VCR VCR :: turnOn ();
// Record requests and responses in cassette file 'example'
VCR VCR :: insertCassette ( ' example ' );
// Following request will be recorded once and replayed in future test runs
$ result = file_get_contents ( ' http://example.com ' );
$ this -> assertNotEmpty ( $ result );
// To stop recording requests, eject the cassette
VCR VCR :: eject ();
// Turn off VCR to stop intercepting requests
VCR VCR :: turnOff ();
}
public function testShouldThrowExceptionIfNoCasettePresent ()
{
$ this -> setExpectedException (
' BadMethodCallException ' ,
" Invalid http request. No cassette inserted. Please make sure to insert "
. " a cassette in your unit test using VCR::insertCassette('name'); "
);
VCR VCR :: turnOn ();
// If there is no cassette inserted, a request throws an exception
file_get_contents ( ' http://example.com ' );
}
}
Anda dapat menggunakan anotasi di PHPUnit dengan menggunakan phpunit-testlistener-vcr:
class VCRTest extends TestCase
{
/**
* @vcr unittest_annotation_test
*/
public function testInterceptsWithAnnotations ()
{
// Requests are intercepted and stored into tests/fixtures/unittest_annotation_test.
$ result = file_get_contents ( ' http://google.com ' );
$ this -> assertEquals ( ' This is a annotation test dummy. ' , $ result , ' Call was not intercepted (using annotations). ' );
// VCR is automatically turned on and off.
}
}
Cukup jalankan perintah berikut:
$ composer require --dev php-vcr/php-vcr
PHP-VCR bergantung pada:
Komposer menginstal semua dependensi kecuali ekstensi seperti curl.
Untuk menjalankan semua pengujian, Anda perlu mendapatkan dependensi pengembangan menggunakan composer:
composer install
composer test
Changelog telah dipindahkan ke halaman rilis PHP-VCR.
Entri log perubahan lama
Hak Cipta (c) 2013-2023 Adrian Philipp. Dirilis berdasarkan ketentuan lisensi MIT. Lihat LISENSI untuk detailnya. Kontributor