@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());
    }
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ответы на вопрос 1
Если в кейсе из примера EntityManager передается как зависимость в конструктор:

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

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

Войти через центр авторизации
Похожие вопросы