symfony codeception Cest Классы тестов - как получить контейнер
Primary tabs
Получение контенера в Helper-е
Можно например так:
<?php
declare(strict_types=1);
namespace App\Tests\Helper;
use App\Validator\TagsExistValidatorMock;
// here you can define custom actions
// all public methods declared in helper class will be available in $I
class MockHelper extends \Codeception\Module
{
public function mockTagsValidator() {
/**
* @var \Codeception\Module\Symfony
*/
$symfony = $this->getModule('Symfony');
$container = $symfony->_getContainer();
$container->set(
\App\Validator\TagsExistValidator::class,
new TagsExistValidatorMock()
);
}
}
Потом этот хэлпер потребуется подключить в tests/functional.suite.yml, например:
actor: FunctionalTester
modules:
enabled:
- Symfony:
app_path: 'src'
environment: 'test'
- \App\Tests\Helper\MockHelper
Получение контейнера из KernelBrowser
Если для отправки запросов вы используете отдельно создаемый KernelBrowser (напр. как тут через self::createClient() ), то из такого клиента получить контейнер можно так:
$this->client->getContainer()
- Log in to post comments
- 203 reads