Задать вопрос
@HellWalk

Почему симфони не может создать сервис для when@test?

Делаю мок S3 клиента для тестового окружения.

services.yaml:

services:

    App\Service\S3Client\S3ClientInterface:
    App\Service\S3Client\S3Client:
        arguments:
            $version: 'latest'
            $region: 'us-east-1'
            $host: '%env(MINIO_HOSTNAME)%'
            $port: '%env(MINIO_INTERNAL_PORT)%'
            $accessKey: '%env(MINIO_ACCESS_KEY)%'
            $secretKey: '%env(MINIO_SECRET_KEY)%'

when@test:
    services:
        App\Service\S3Client\S3ClientInterface:
        App\Service\S3Client\S3Client:
            class: App\Service\S3Client\TestS3Client


Оба класса наследуются от S3ClientInterface:

class S3Client implements S3ClientInterface

class TestS3Client implements S3ClientInterface


В месте, где код падает, зависимость идет на интерфейс:

class DoctrineListener
{
    public function __construct(
        // ...
        private readonly S3ClientInterface $s3Client,
    ) {
    }


В prod/dev режиме все работает нормально. В тестовом окружении получаю ошибку:

In getKernel_Listener_DoctrineService.php line 32:
                                                                       
  Cannot instantiate interface App\Service\S3Client\S3ClientInterface


P.S. Кэш чистил. Конструктор в TestS3Client пустой, зависимостей нет.
  • Вопрос задан
  • 35 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы