Привет, ребят. Symfony 5.3 Что не так делаю при вызове $this->client->loginUser в

тесте?

...
protected function setUp(): void
{
$this->client = static::createClient();
$this->client->disableReboot();
$kernel = self::bootKernel();
DatabasePrimer::prime($kernel);
$this->em = $kernel->getContainer()->get('doctrine')->getManager();
}

public function test_userinfo_success()
{
$userRepository = $this->em->getRepository(User::class);
$testUser = $userRepository->findOneBy(['email' => 'black.jack@mail.ru']);

// ТУТ РУГАЕТСЯ
$this->client->loginUser($testUser);
}
...

LogicException: Cannot retrieve the container from a non-booted kernel.

9 ответов

41 просмотр

$userRepository = static::$container->get(UserRepository::class); $testUser = $userRepository->findOneBy(['email' => 'black.jack@mail.ru']); $this->client->loginUser($testUser);

Андрей-Д. Автор вопроса
𝔏𝔦𝔩𝔦𝔱𝔥
$userRepository = static::$container->get(UserRepo...

Спасибо, но не уверен, что контекст верный: Error: Call to undefined method App\Model\User\Entity\User\UserRepository::findOneBy()

Андрей-Д. Автор вопроса
Андрей Д.
Спасибо, но не уверен, что контекст верный: Error...

А ругань была не на репозиторий до этого, а на non bootable kernel

Андрей Д.
А ругань была не на репозиторий до этого, а на non...

тогда чтобы достучаться до em или repo используй static::getContainer а не $kernel->getContainer()

Андрей-Д. Автор вопроса
𝔏𝔦𝔩𝔦𝔱𝔥
https://symfony.com/doc/current/testing.html#testi...

Аналогично ( protected function setUp(): void { $this->client = static::createClient(); $this->client->disableReboot(); $this->em = static::getContainer()->get('doctrine')->getManager(); } public function test_userinfo_success() $userRepository = static::$container->get(UserRepository::class); $testUser = $userRepository->getByEmail(new Email('black.jack@mail.ru')); $this->client->loginUser($testUser); }

Андрей Д.
Аналогично ( protected function setUp(): void ...

эм... а в test_userinfo_success ничего менять не нужно? если достаем через em, то мб следует изменить $this->em->getRepository ? или $userRepository = static::getContainer()->get(UserRepository::class); ?

Андрей-Д. Автор вопроса
𝔏𝔦𝔩𝔦𝔱𝔥
эм... а в test_userinfo_success ничего менять не н...

Так немного поменялось) protected function setUp(): void { $this->client = static::createClient(); $this->client->disableReboot(); $this->em = static::getContainer()->get('doctrine')->getManager(); } public function test_userinfo_success() $userRepository = $this->em->getRepository(User::class); $testUser = $userRepository->findOneBy(['email' => 'black.jack@mail.ru']); $this->client->loginUser($testUser); } You have requested a non-existent service "security.untracked_token_storage"

Андрей Д.
Так немного поменялось) protected function setUp(...

хз, возможно провайдер не описан в сесуриту ямл на сущность юзера

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

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта