Php 单元测试服务描述
我在测试Guzzle服务时遇到问题描述: 我试图遵循以下指南: 创建了一个抽象测试用例: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
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。我不确定这些文档有多适用。也许会更有用?