Вы не должны зависеть от Symfony\Component\HttpClient
, но от Symfony\Contracts\HttpClient\HttpClientInterface
.
MockHttpClient
реализует этот интерфейс, так что в этом случае это правильная замена для инъекции.
Если вы вводите HttpClient
, потому что вы хотите использовать фабрику для создания произвольных клиентов во время выполнения, насмешка будет труднее. Но вряд ли это именно то, что вам действительно нужно.
Правильный способ интеграции Http-клиента - это указание типа интерфейса и возможность создания платформы соответствующим клиентом в зависимости от вашей конфигурации.
Это чище (вы зависите от абстракции, а не от конкреции), и поэтому гораздо проще написать тесты для.