phpunit php vcr
v1.1.1
PHPUnit テストで PHP-VCR ライブラリを簡単に使用できるようにするライブラリ。
composer require --dev angelov/phpunit-php-vcr
次に、拡張子を PHPUnit 構成ファイルに追加します。
(すべてのパラメータはオプションです。)
< extensions >
< bootstrap class = " AngelovPHPUnitPHPVcrExtension " >
< parameter name = " cassettesPath " value = " tests/fixtures " />
< parameter name = " storage " value = " yaml " /> <!-- https://php-vcr.github.io/documentation/configuration/#storage -->
< parameter name = " libraryHooks " value = " stream_wrapper, curl, soap " /> <!-- https://php-vcr.github.io/documentation/configuration/#library-hooks -->
< parameter name = " requestMatchers " value = " method, url, query_string, ... " /> <!-- https://php-vcr.github.io/documentation/configuration/#request-matching -->
< parameter name = " whitelistedPaths " value = " " /> <!-- https://php-vcr.github.io/documentation/configuration/#white--and-blacklisting-paths -->
< parameter name = " blacklistedPaths " value = " " /> <!-- https://php-vcr.github.io/documentation/configuration/#white--and-blacklisting-paths -->
< parameter name = " mode " value = " new_episodes " /> <!-- https://php-vcr.github.io/documentation/configuration/#record-modes -->
</ bootstrap >
</ extensions >
このライブラリは、テスト クラスまたは特定のテスト メソッドで宣言できるUseCassette
属性を提供します。この属性には、カセットの名前という 1 つの文字列引数が必要です。
テストを実行すると、ライブラリはレコーダーの電源を自動的にオン/オフにし、必要に応じてカセットを挿入します。
例:
クラスで宣言されると、PHP-VCR はそのクラス内のすべてのテスト メソッドのリクエストをインターセプトし、応答を指定されたカセットに保存します。
use Angelov PHPUnitPHPVcr UseCassette ;
use PHPUnit Framework Attributes Test ;
use PHPUnit Framework TestCase ;
#[UseCassette( " example_cassette.yml " )]
class ExampleTest extends TestCase
{
#[Test]
public function example (): void { . . . }
#[Test]
public function another (): void { . . . }
}
テスト メソッドで宣言すると、そのメソッド内のリクエストのみがインターセプトされ、指定されたカセットに保存されます。異なるカセットを使用して複数のテスト メソッドで宣言できることに注意してください。
use Angelov PHPUnitPHPVcr UseCassette ;
use PHPUnit Framework Attributes Test ;
use PHPUnit Framework TestCase ;
class ExampleTest extends TestCase
{
#[Test]
#[UseCassette( " example.yml " )]
public function example (): void { . . . }
#[Test]
public function another (): void { . . . }
#[Test]
#[UseCassette( " example_2.yml " )]
public function recorded (): void { . . . }
}
クラスと特定のメソッドの両方で宣言された場合、メソッドで宣言された属性の名前がそのメソッドに使用されます。この例では、 example()
メソッドで行われたリクエストからの応答はexample.yml
に保存され、 recorded()
からのレスポンスはexample_2.yml
に保存されます。
use Angelov PHPUnitPHPVcr UseCassette ;
use PHPUnit Framework Attributes Test ;
use PHPUnit Framework TestCase ;
#[UseCassette( " example.yml " )]
class ExampleTest extends TestCase
{
#[Test]
public function example (): void { . . . }
#[Test]
#[UseCassette( " example_2.yml " )]
public function recorded (): void { . . . }
}