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

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

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

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

Надо будет попробовать как-то его вытащить.
...
Рейтинг: 0 / 0
18.11.2012, 21:24
    #38043408
SergSW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php]Symfony2+Codecept Тестирование служб
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
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php]Symfony2+Codecept Тестирование служб / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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