powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php]Symfony2+Codecept Тестирование служб
5 сообщений из 5, страница 1 из 1
[php]Symfony2+Codecept Тестирование служб
    #38042788
SergSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Облазил всю документацию Codeception. Никак не могу составить тест для службы.

Есть служба с рядом зависимостей на др службы.
Первый и главный вопрос как её инстанцировать?
В примерах всё только прямое создание экземпляров классов с ручным заполнением параметров (в моём случае не катит).
...
Рейтинг: 0 / 0
[php]Symfony2+Codecept Тестирование служб
    #38042916
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эм? мокать зависимости?
...
Рейтинг: 0 / 0
[php]Symfony2+Codecept Тестирование служб
    #38042918
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://codeception.com/docs/07-UnitTestsPractice
раздел Stubs и дальше
...
Рейтинг: 0 / 0
[php]Symfony2+Codecept Тестирование служб
    #38043088
SergSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

Так этож руками создавать. Без DI. Если один два класса обычных вставить то ещё куда ни шло, так они ещё могу и будут свои зависимости тащить. Этож застрелиться.

Получается или обёртки эмулирующие их работу писать, что никак не отвечает критерию простоты (нафиг тогда нужны такие тесты если их написание требует таких больших трудозатрат). Или как то получить экземпляр контейнера IoC, при необходимости через параметры подменять выборочно некоторые службы тестовыми и на основе его чтоб собирал. Тогда трудозатраты будут приемлимыми.

Надо будет попробовать как-то его вытащить.
...
Рейтинг: 0 / 0
[php]Symfony2+Codecept Тестирование служб
    #38043408
SergSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSW,

Что-то я ступил. Конечно полностью штатного решения нет. Нужно сделать несколько движений телом.
Сделал так:
1. Добавил модуль Symfony2 к списку модулей (вполне штатно).
2. Добавил в хелпер следующих код (в принципе тоже никаких хаков)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
/**
     *
     * @return Symfony2
     * @throws Exception
     */
    public function getSymfony2() {
        if ($this->hasModule('Symfony2'))
           return $this->getModule ('Symfony2');

        throw new Exception('The Symfony2 module is not found!');
    }

    /**
     *
     * @return \Symfony\Component\HttpKernel\Kernel
     */
    public function getKernel() {
        return $this->getSymfony2()->kernel;
    }

    /**
     *
     * @return \Symfony\Component\DependencyInjection\ContainerInterface
     */
    public function getContainer(){
        return $this->getKernel()->getContainer();
    }
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php]Symfony2+Codecept Тестирование служб
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]