demyan112rv / mountebank-api-php
mountebank API 的 PHP 封装
1.11.1
2024-07-22 19:54 UTC
Requires
- php: >=7.4 <8.4
- ext-json: *
- guzzlehttp/guzzle: >=4.1.4
Requires (Dev)
- php-coveralls/php-coveralls: >=v2.0.0
- phpstan/phpstan: >=1.0 <3.0
- phpunit/phpunit: >=8.0 <11.0
This package is auto-updated.
Last update: 2024-09-22 20:20:01 UTC
README
什么是 Mountebank?请参阅原始 文档 以了解。
此包是 mountebank API 的 PHP 封装。
安装
composer require demyan112rv/mountebank-api-php
测试
在运行测试之前,安装依赖项,构建 Docker 镜像并运行容器
composer install
docker-compose up
进入 php 容器并运行测试
docker exec -it mountebank_php bash
cd /var/www/mountebank-api-php
php vendor/bin/phpunit
使用基础
存根的响应
use Demyan112rv\MountebankPHP\Response; use Demyan112rv\MountebankPHP\Response\Behavior; $response = new Response(Response::TYPE_IS); $response->setConfig([ 'statusCode' => 200, 'headers' => ['Content-Type' => 'application/json'], 'body' => ['foo' => 'bar'] ])->addBehavior( (new Behavior(Behavior::TYPE_WAIT)) ->setConfig((new Behavior\Config\Wait())->setValue(500)) );
存根的谓词
use Demyan112rv\MountebankPHP\Predicate; use Demyan112rv\MountebankPHP\Predicate\XPath; use Demyan112rv\MountebankPHP\Predicate\JsonPath; $predicate = new Predicate(Predicate::OPERATOR_EQUALS); $predicate->setConfig(['path' => '/test']) ->setXPath((new XPath())->setSelector('selector')->setNs(['foo' => 'bar'])) ->setJsonPath((new JsonPath('selector')));
伪造者存根
use Demyan112rv\MountebankPHP\Stub; $stub = new Stub(); $stub->addResponse($response)->addPredicate($predicate);
Mountebank 的伪造者
use Demyan112rv\MountebankPHP\Imposter; use Demyan112rv\MountebankPHP\Mountebank; $imposter = new Imposter('Test imposter', 1234, Imposter::PROTOCOL_HTTP); $imposter->addStub($stub); // Mountbank config client $mb = new Mountebank(new \GuzzleHttp\Client(), 'https://', 2525); // Add new imposter $response = $mb->addImposter($imposter); // remove all imposters $response = $mb->removeImposters();