PHPUnit эмуляция глобальных переменных

t3[0one]

Новичок
Реализовал я например интерфейс psr-7 и что бы мне его протестировать на phpunit-е нужно эмулиловать различные состояния окружающей серды, например загаловки, гет пост, делете и тп. Как в пхп юните правильно организовать эмуляцию глобальных переменных и тп? Какие то специальные методы у него есть ? Или все самом в setUp сувать ? Нашел dataProvider, еще может как е то полезные штуки есть ?
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Реализация у тебя дерьмо. Нефиг в реализации лазить в суперглобалы.

Сделай именованный конструктор вида static Request::createFromGlobals(array $globals), и проблемы никакой не будет.
 

WMix

герр M:)ller
Партнер клуба
загаловки, гет пост, делете и тп
мне кажется это подразумевает тестирование контроллеров, что тоже никчемная задача. Request отбьект конечно правильный, но это ничего не меняет, на этом уровне нужен acceptance test а там и _GET и _POST будут
 

fixxxer

К.О.
Партнер клуба
@WMix, для тестирования реализации psr-7 RequestInterface acceptance test? Зачем? Это вполне самостоятельный класс, и вполне себе подлежит юнит-тестированию.

Суперглобалы вполне можно считать синглтонами. Так что как и с синглтонами, для decoupling-а суперглобалов достаточно не обращаться к ним напрямую, а передать в конструктор.
 

t3[0one]

Новичок
@WMix, для тестирования реализации psr-7 RequestInterface acceptance test? Зачем? Это вполне самостоятельный класс, и вполне себе подлежит юнит-тестированию.

Суперглобалы вполне можно считать синглтонами. Так что как и с синглтонами, для decoupling-а суперглобалов достаточно не обращаться к ним напрямую, а передать в конструктор.
Это я для примера привел, пример не удачный (получше про psr-7 почитал) , у меня класс работает только в апаче и работает с суперглобалами. Я с тестами знакомлюсь и встал вопрос, как лучше эмулировать окружающею среду для тестирования класса
 
Последнее редактирование:
Сверху