Ну, ваш менеджер сессий в основном не работает. Чтобы иметь возможность что-то тестировать, должна быть возможность изолировать это от побочных эффектов. К сожалению, PHP разработан таким образом, что он поощряет свободное использование глобального состояния (echo
, header
, exit
, session_start
и т. Д. И т. Д.).
Лучшее, что вы можете сделать, - это выделить побочные эффекты в компоненте, которые можно поменять местами во время выполнения. Таким образом, ваши тесты могут использовать фиктивные объекты, в то время как живой код использует адаптеры, которые имеют реальные побочные эффекты. Вы обнаружите, что это плохо работает с синглетами, которые, я полагаю, вы используете. Поэтому вам придется использовать какой-то другой механизм для распределения общих объектов в вашем коде. Вы можете начать со статического реестра, но есть и лучшие решения, если вы не возражаете против изучения.
Если вы не можете этого сделать, у вас всегда есть возможность написать интеграционные тесты. Например. используйте эквивалент PHPUnit WebTestCase
.