arlauskas / cassette-generator
为vcr磁带生成文件
v1.1.4
2022-01-21 13:24 UTC
Requires
- php: >=7.4
- symfony/yaml: ^4.0 || ^5.0 || ^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9.5
README
安装
composer require --dev arlauskas/cassette-generator
用法
vendor/bin/vcg vcg_config.yaml
配置示例
vcg_config.yaml
record-defaults: request: method: POST url: "'http://127.0.0.1:8080/soap'" headers: Host: "'127.0.0.1:8080'" Content-Type: "'text/xml; charset=utf-8;'" SOAPAction: "'http://tempuri.org/'" response: status: http_version: "'1.1'" code: "'200'" message: OK headers: Cache-Control: private Content-Length: "'196'" Content-Type: "'text/xml; charset=utf-8'" Server: Microsoft-IIS/8.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: "'Wed, 10 Feb 2021 07:35:56 GMT'" cassettes-settings: - name: 'integration_tests' input-dir: './assets/' output-dir: './output/' cassettes: - output-file: 'login_process.yaml' records: - request: 'find_user_request.xml' response: 'find_user_response.xml' append: 'request|headers|SOAPAction': 'IAppService/FindUser' rewrite: 'response|headers|Date': - request: 'user_login_request.xml' response: 'user_login_response.xml' append: 'request|headers|SOAPAction': 'IAppService/Login' rewrite: 'response|headers|Date': - output-file: 'registration_process.yaml' records: - request: 'check_code_request.xml' response: 'check_code_response.xml' append: 'request|headers|SOAPAction': 'IAppService/CheckCode' rewrite: 'response|headers|Date': - request: 'pass_code_request.xml' response: 'pass_code_response.xml' append: 'request|headers|SOAPAction': 'IAppService/PassCode' rewrite: 'response|headers|Date':
find_user_request.xml
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"> <SOAP-ENV:Body> <ns1:FindUser> <ns1:User>test@example.com</ns1:User> </ns1:FindUser> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
find_user_response.xml
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"> <SOAP-ENV:Body> <ns1:FindUserResponse> <ns1:FindUserResult>true</ns1:FindUserResult> </ns1:FindUserResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
配置参考
record-defaults
每个记录都将提供默认信息。
cassettes-settings
在这里,您将提供如何查看文件结构的配置。磁带将被写入文件,每个文件将包含一个或多个记录。 record-defaults
数据将被提供到每个记录中。
request
和 response
将尝试从磁带持有者的 input-dir
中查找文件。
append
将添加由 record-defaults
设置提供的数据。
rewrite
将替换由 record-defaults
设置提供的数据。
每个磁带将被写入到目录 output-dir
中,并以 output-file
命名。