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

Как мокать конструкцию getRepository->findOneBy?

Как мокать конструкцию getRepository->findOneBy
public function isStoppedSendingEmail(string $email): bool
    {
        return (bool)$this->entityManager
            ->getRepository(StopEmail::class)
            ->findOneBy(['email' => $email]);
    }


Код теста:
public function testIsStoppedSendingEmail(): void
    {
        $this->entityManager
            ->method('findOneBy')
            ->willReturn(new \stdClass());
    }
  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Если в кейсе из примера EntityManager передается как зависимость в конструктор:

- Создать мок для StopEmailRepository в котором и описать что метод findOneBy должен быть вызван один раз, с таким то значением.
- Создать мок для EntityManager в котором описать что метод getRepository должен возвращать мок из предыдущего пункта.
- Создать екземпляр тестируемого объекта в конструкто которого и передать мок EntityManager
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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