php vcr
1.8.0
이것은 VCR Ruby 라이브러리를 PHP로 포팅한 것입니다.
빠르고 결정적이며 정확한 테스트를 위해 테스트 스위트의 HTTP 상호작용을 기록하고 향후 테스트 실행 중에 재생하십시오. 약간의 문서는 php-vcr 웹사이트에서 찾을 수 있습니다.
면책 조항: PHP에서 이 작업을 수행하는 것은 Monkey 패치를 지원하는 프로그래밍 언어만큼 쉽지 않습니다. (나는 당신을 보고 있습니다, 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-testlistener-vcr을 사용하여 PHPUnit에서 주석을 사용할 수 있습니다.
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은 다음에 의존합니다:
Composer는 컬과 같은 확장을 제외한 모든 종속성을 설치합니다.
모든 테스트를 실행하려면 작곡가를 사용하여 개발 종속성을 가져와야 합니다.
composer install
composer test
변경 로그가 PHP-VCR 릴리스 페이지로 이동되었습니다.
이전 변경 로그 항목
저작권 (c) 2013-2023 Adrian Philipp. MIT 라이센스 조건에 따라 출시되었습니다. 자세한 내용은 라이센스를 참조하세요. 기여자