Я пытаюсь создать класс, который запрашивает внешний API. Каждый метод, соответствующий конечной точке, вызывает метод «главного вызова», ответственный за фактическую отправку запроса в API.
Например:
// $this->http is Guzzlehttp\Client 5.3
public function call($httpMethod, $endpoint, array $parameters = [])
{
$parameters = array_merge($parameters, [
'headers' => [
'something' => 'something'
]
]);
$request = $this->http->createRequest($httpMethod, $this->baseUrl . $endpoint, $parameters);
return $this->http->send($request);
}
public function getAll()
{
return $this->call('GET', 'all');
}
Над чем я должен издеваться? Должен ли я использовать willBeCalled() и/или willReturn() в методах createRequest() и send() http-клиента?
Когда я имитирую send(), он говорит: Аргумент 1, переданный в Double\GuzzleHttp\Client\P2::send(), должен реализовать интерфейс GuzzleHttp\Message\RequestInterface, задано значение null
и я не уверен, как это сделать, потому что для создания манекена для этого интерфейса мне нужно реализовать 30 методов в этом классе.
Вот тест прямо сейчас:
function it_lists_all_the_things(HttpClient $http)
{
$this->call('GET', 'all')->willBeCalled();
$http->createRequest()->willBeCalled();
$http->send()->willReturn(['foo' => 'bar']);
$this->getAll()->shouldHaveKeyWithValue('foo', 'bar');
}
Подробнее здесь: https://stackoverflow.com/questions/309 ... ing-guzzle
Тестирование класса в phpspec с использованием Guzzle ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1716256112
Anonymous
Я пытаюсь создать класс, который запрашивает внешний API. Каждый метод, соответствующий конечной точке, вызывает метод «главного вызова», ответственный за фактическую отправку запроса в API.
Например:
// $this->http is Guzzlehttp\Client 5.3
public function call($httpMethod, $endpoint, array $parameters = [])
{
$parameters = array_merge($parameters, [
'headers' => [
'something' => 'something'
]
]);
$request = $this->http->createRequest($httpMethod, $this->baseUrl . $endpoint, $parameters);
return $this->http->send($request);
}
public function getAll()
{
return $this->call('GET', 'all');
}
Над чем я должен издеваться? Должен ли я использовать willBeCalled() и/или willReturn() в методах createRequest() и send() http-клиента?
Когда я имитирую send(), он говорит: Аргумент 1, переданный в Double\GuzzleHttp\Client\P2::send(), должен реализовать интерфейс GuzzleHttp\Message\RequestInterface, задано значение null
и я не уверен, как это сделать, потому что для создания манекена для этого интерфейса мне нужно реализовать 30 методов в этом классе.
Вот тест прямо сейчас:
function it_lists_all_the_things(HttpClient $http)
{
$this->call('GET', 'all')->willBeCalled();
$http->createRequest()->willBeCalled();
$http->send()->willReturn(['foo' => 'bar']);
$this->getAll()->shouldHaveKeyWithValue('foo', 'bar');
}
Подробнее здесь: [url]https://stackoverflow.com/questions/30940771/testing-a-class-in-phpspec-involving-guzzle[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия