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
특성을 제공합니다. 이 속성에는 하나의 문자열 인수(카세트 이름)가 필요합니다.
테스트를 실행할 때 라이브러리는 자동으로 레코더를 켜고 끄고 필요할 때 카세트를 삽입합니다.
예:
클래스에 선언되면 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 { . . . }
}