Php 单元测试服务描述

Php 单元测试服务描述,php,symfony,guzzle,Php,Symfony,Guzzle,我在测试Guzzle服务时遇到问题描述: 我试图遵循以下指南: 创建了一个抽象测试用例: use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use MyNamespace\ClientFactory; use MyNamespace\Client; use GuzzleHttp\Subscriber\Mock; use GuzzleHttp\Message\Response; use GuzzleHttp\Stream\Stream; c

我在测试Guzzle服务时遇到问题描述:

我试图遵循以下指南:

创建了一个抽象测试用例:

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use MyNamespace\ClientFactory;
use MyNamespace\Client;
use GuzzleHttp\Subscriber\Mock;
use GuzzleHttp\Message\Response;
use GuzzleHttp\Stream\Stream;

class AbstractTestCase extends WebTestCase
{

    protected $client;
    protected $container;

    public function setUp()
    {
        $factory = new ClientFactory(
            new \GuzzleHttp\Client(),
            'baseUrl',
            []
        );
        $this->client = $factory->create();
        $this->container = static::createClient()->getContainer();
    }

    protected function setMock($status, $body,
        array $headers = ['Content-Type' => 'application/json'])
    {
        $mock = new Mock([
            new Response($status, $headers, Stream::factory($body))
        ]);
        $this->client->getEmitter()->attach($mock);
    }
}
还有我的测试:

class ClientTest extends \AbstractTestCase
{
    public function testGetBasket()
    {
        $this->setMock(200, '{"Basket": {"foo": "bar"}}');

        $response = $this->client->getBasket([
            'sessionId' => 'sessionId',
            'storeId' => 123,
            'transactionId' => 123
        ]);
    }
}
代码在以下情况下失败:

Caused by
GuzzleHttp\Ring\Exception\ConnectException: cURL error 6: Could not resolve host: brestrictions

根据Guzzle文档,我正在模拟客户的响应,但它似乎不适用于服务描述。

您的代码示例和错误消息表明Guzzle 5的使用,但您引用的链接是Guzzle 3。我不确定这些文档有多适用。也许会更有用?