demyan112rv/mountebank-api-php

mountebank API 的 PHP 封装

1.11.1 2024-07-22 19:54 UTC

README

Latest Stable Version Total Downloads License PHPStan Build Status Coverage Status

什么是 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();