У меня есть API, который я тестирую с помощью функциональных тестов, и все работает хорошо. Проблема возникает в следующей ситуации:
У меня есть контроллер, который выполняет внешний вызов API через службу. Я хотел бы посмеяться над этим сервисом во время тестов, но я не знаю, как это сделать.
Итак, это может быть мой код (в качестве примера):
// src/service/MyService.php
class MyService
{
public function __construct(HttpClientInterface $client) {
$this->client = $client
}
public function call()
{
$this->client->get('https://api.com');
}
}
// src/controller/MyController.php
class MyController
{
/**
* @Route("/call")
*/
public function call(MyService $myService)
{
$myService->call();
}
}
// tests/controller/MyControllerTest.php
class MyControllerTest extends WebTestCase
{
public function testCall()
{
$client = static::createClient();
$client->request('GET', '/call');
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
}
Как я могу издеваться над службой MyService во время тестов?