no_alex
Новичок
Только начал изучать Symfony, поэтому сразу прошу прощения за возможно "тупой вопрос".
Суть в следующем:
- внутри созданного мною bundle есть класс, который я объявил как сервис (это не контроллер);
- в этом сервисе у меня идёт работа с Doctrine;
- с помощью параметров в конфиге я прописал чтобы в конструктор этого сервиса автоматически передавался объект Doctrine (\Doctrine\Bundle\DoctrineBundle\Registry);
Когда вызывал этот сервис из какого-либо контроллера (с помощью метода get) всё работало нормально.
Теперь встала задача написать Unit test к этому сервису. И я зашёл в тупик как организовать здесь работу с Doctrine.
Хотелось-бы, если это возможно, получить 3 способа решения этой задачи:
1) Получать объект этого сервиса способом аналогичным тому, что я использовал в контроллере - через какой-либо специальный метод (я не нашёл такого метода в классе \PHPUnit_Framework_TestCase, от которого я наследовался), так чтобы все параметры конфига подтягивались автоматически.
2) Создавать объект Doctrine в классе Unit test (согласно указанным в основном конфиге параметрам) и передавать в тестируемый сервис через конструктор или специальный метод;
3) Создавать объект Doctrine внутри тестируемого сервиса (согласно указанным в основном конфиге параметрам), так чтобы вообще не было необходимости дополнительно передавать этот объект.
Подскажите, возможны ли эти 3 способа и как их реализовать?
Суть в следующем:
- внутри созданного мною bundle есть класс, который я объявил как сервис (это не контроллер);
- в этом сервисе у меня идёт работа с Doctrine;
- с помощью параметров в конфиге я прописал чтобы в конструктор этого сервиса автоматически передавался объект Doctrine (\Doctrine\Bundle\DoctrineBundle\Registry);
Когда вызывал этот сервис из какого-либо контроллера (с помощью метода get) всё работало нормально.
Теперь встала задача написать Unit test к этому сервису. И я зашёл в тупик как организовать здесь работу с Doctrine.
Хотелось-бы, если это возможно, получить 3 способа решения этой задачи:
1) Получать объект этого сервиса способом аналогичным тому, что я использовал в контроллере - через какой-либо специальный метод (я не нашёл такого метода в классе \PHPUnit_Framework_TestCase, от которого я наследовался), так чтобы все параметры конфига подтягивались автоматически.
2) Создавать объект Doctrine в классе Unit test (согласно указанным в основном конфиге параметрам) и передавать в тестируемый сервис через конструктор или специальный метод;
3) Создавать объект Doctrine внутри тестируемого сервиса (согласно указанным в основном конфиге параметрам), так чтобы вообще не было необходимости дополнительно передавать этот объект.
Подскажите, возможны ли эти 3 способа и как их реализовать?