php vcr
1.8.0
これは VCR Ruby ライブラリの PHP への移植です。
テスト スイートの HTTP インタラクションを記録し、今後のテスト実行中にそれらを再生することで、高速で確定的かつ正確なテストを実現します。一部のドキュメントは php-vcr Web サイトにあります。
免責事項: PHP でこれを行うのは、モンキー パッチをサポートするプログラミング言語ほど簡単ではありません (Ruby さん、あなたを見ています)
$http_response_header
を除く #96 を参照)VCRVCR::turnOn();
を追加して SoapClient に追加します。あなたの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 は、curl などの拡張機能を除くすべての依存関係をインストールします。
すべてのテストを実行するには、composer を使用して開発依存関係を取得する必要があります。
composer install
composer test
変更ログは PHP-VCR リリース ページに移動しました。
古い変更ログエントリ
著作権 (c) 2013-2023 エイドリアン フィリップ。 MIT ライセンスの条件に基づいてリリースされています。詳細については、「ライセンス」を参照してください。貢献者