Size: a a a

2021 February 04

ⓐⓨⓝⓤⓡ in symfony
Volodymyr Melko
Ты делаешь новый пустой контейнер. Доставай контейнер, который уже есть
а как это сделать?
источник

ⓐⓨⓝⓤⓡ in symfony
тыкните меня плиз в доку не могу никак найти
источник

VM

Volodymyr Melko in symfony
ⓐⓨⓝⓤⓡ
тыкните меня плиз в доку не могу никак найти
источник

ⓐⓨⓝⓤⓡ in symfony
может быть это из-за того что я юзаю 5 версию симфони, и модуль Юнита подключил вот так

composer require --dev symfony/phpunit-bridge
источник

VM

Volodymyr Melko in symfony
Нет, в любом случае нужно брать уже сконфигурированный контейнер
источник

VM

Volodymyr Melko in symfony
Какой тест ты пишешь? Юнит или функциональный?
источник

ⓐⓨⓝⓤⓡ in symfony
Volodymyr Melko
Какой тест ты пишешь? Юнит или функциональный?
юнит
источник

VM

Volodymyr Melko in symfony
Тебе не нужен контейнер для юнит тестов
источник

ⓐⓨⓝⓤⓡ in symfony
попробывал вот так
protected function setUp(): void
{
   self::
bootKernel();

   $this->commissionService = static::
$kernel
       
->getContainer()
       ->get(CommissionService::class);
}


но пишет что нет bootKernel
источник

SP

Sergey Protko in symfony
Volodymyr Melko
Тебе не нужен контейнер для юнит тестов
ой да для них все что phpunit это юнит. А для менеджеров все тесты которые пишут разработчики юнит
источник

SP

Sergey Protko in symfony
всеравно термин бесполезный)
источник

SP

Sergey Protko in symfony
isolated in-process testing :)
источник

DT

Denis Trubachev in symfony
ⓐⓨⓝⓤⓡ
попробывал вот так
protected function setUp(): void
{
   self::
bootKernel();

   $this->commissionService = static::
$kernel
       
->getContainer()
       ->get(CommissionService::class);
}


но пишет что нет bootKernel
Какой класс наследуешь в своем классе тесте?
источник

ⓐⓨⓝⓤⓡ in symfony
вот по шагам:
1) Запустил composer require --dev symfony/phpunit-bridge

2) Запустил ./bin/phpunit

3) Создал папку специально для Unit тестов: /Unit

4) Создал тест, в котором тестирую Сервис с зависимостями

5) По докам сделал метод protected function setUp(): void
{
   self::
bootKernel();

   $this->commissionService = static::
$kernel
       
->getContainer()
       ->get(CommissionService::class);
}


Итог: bootKernel не найден
источник

ПГ

Павел Г. in symfony
Приветствую. Подскажите плиз по доктрине, что-то я не понял:
EagerLoad не работает
$qb->join(Receivers::class, "r"); 
$qb->addSelect('r');
EagerLoad работает
$qb->join('o.receivers', "r");
$qb->addSelect('r');
В чем принципальная разница в теории использования таких способов? В остальном запросы пашут и ок.
источник

ⓐⓨⓝⓤⓡ in symfony
может из-за этого проблема?
источник

ПГ

Павел Г. in symfony
ⓐⓨⓝⓤⓡ
вот по шагам:
1) Запустил composer require --dev symfony/phpunit-bridge

2) Запустил ./bin/phpunit

3) Создал папку специально для Unit тестов: /Unit

4) Создал тест, в котором тестирую Сервис с зависимостями

5) По докам сделал метод protected function setUp(): void
{
   self::
bootKernel();

   $this->commissionService = static::
$kernel
       
->getContainer()
       ->get(CommissionService::class);
}


Итог: bootKernel не найден
Надо отнаследоваться от WebTestCase сифони. Там есть метод getContainer()
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class BaseWebTestCase extends WebTestCase
{
   protected function getTestContainer(KernelBrowser $client = null): ContainerInterface
   {
       $container = $client->getContainer();
       return $container->get('test.service_container');
   }
}
источник

ПГ

Павел Г. in symfony
Ну и возможно надо получить тестовый контейнер вручную (как в примере), хотя с какой то версии должен подрубаться в тестах автоматом
источник

DT

Denis Trubachev in symfony
Или KernelTestCase
источник

ⓐⓨⓝⓤⓡ in symfony
ок спс!
источник