Перейти к основному содержимому

Тестирование Symfony-сервисов

Для проведения интеграционных тестов Symfony-сервисов в контексте их конфигурации в контейнере существует несколько способов извлечения их напрямую из контейнера Symfony (независимо от того, являются ли они публичными или приватными).

Стандартный способ Symfony описан в документации Symfony и также может быть использован в контексте Pimcore.

В связке с Codeception обычно используется codeception symfony модуль, который предоставляет дополнительную функциональность, включая получение сервисов из контейнера.

Однако на данный момент мы не используем модуль symfony для Codeception, чтобы снизить сложность тестов и по причине отсутствия совместимости с Symfony 6.

Чтобы по-прежнему иметь возможность использовать функцию получения сервиса, просто используйте модуль Pimcore\Tests\Support\Helper\Pimcore и вызывайте метод grabService, как показано ниже:

use Pimcore\Tests\Support\Helper\Pimcore;  

/** @var Pimcore $pimcoreModule */
$pimcoreModule = $this->getModule('\\' . Pimcore::class);
$mailerService = $pimcoreModule->grabService('mailer');


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.