นี่คือพอร์ตของไลบรารี VCR Ruby ไปยัง PHP
บันทึกการโต้ตอบ HTTP ของชุดการทดสอบของคุณและเล่นซ้ำในระหว่างการทดสอบในอนาคตเพื่อการทดสอบที่รวดเร็ว กำหนดได้ และแม่นยำ เอกสารเล็กน้อยสามารถพบได้บนเว็บไซต์ php-vcr
ข้อจำกัดความรับผิดชอบ: การทำเช่นนี้ใน PHP ไม่ใช่เรื่องง่ายเหมือนกับในภาษาโปรแกรมที่รองรับการแพตช์ลิง (ฉันกำลังมองคุณอยู่ Ruby)
$http_response_header
ดู #96)VCRVCR::turnOn();
ใน tests/bootstrap.php
ของคุณVCRVCR::turnOn();
ใน tests/bootstrap.php
ของคุณการใช้การเรียกวิธีคงที่:
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 ' );
}
}
คุณสามารถใช้คำอธิบายประกอบใน PHPUnit ได้โดยใช้ 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.
}
}
เพียงรันคำสั่งต่อไปนี้:
$ composer require --dev php-vcr/php-vcr
PHP-VCR ขึ้นอยู่กับ:
นักแต่งเพลงจะติดตั้งการขึ้นต่อกันทั้งหมด ยกเว้นส่วนขยายเช่น curl
ในการรันการทดสอบทั้งหมด คุณต้องได้รับการพึ่งพาการพัฒนาโดยใช้ผู้แต่ง:
composer install
composer test
บันทึกการเปลี่ยนแปลงได้ย้ายไปที่หน้าการเผยแพร่ PHP-VCR
รายการบันทึกการเปลี่ยนแปลงเก่า
ลิขสิทธิ์ (c) 2013-2023 Adrian Philipp เผยแพร่ภายใต้เงื่อนไขของใบอนุญาต MIT ดูใบอนุญาตสำหรับรายละเอียด ผู้ร่วมให้ข้อมูล