С PHPUnit довольно легко протестировать необработанный код PHP, но что относительно кода, который в большой степени полагается на cookie? Сессии могли быть хорошим примером.
Есть ли метод, который не требует, чтобы я установил $_COOKIE
с данными во время моего теста? Похоже на hacky способ сделать вещи.
Это обычная проблема с кодом, особенно с запаздывающим кодом PHP. Общий используемый метод - дальнейшее абстрагирование переменных COOKIE / SESSION в связанных объектах и использование инверсии методов управления для втягивания этих зависимостей в область видимости.
http://martinfowler.com/articles/injection.html
Теперь, прежде чем выполнять тест, вы должны создать экземпляр фиктивной версии объекта Cookie / Session и предоставить данные по умолчанию.
Я полагаю, что того же эффекта можно достичь с помощью устаревшего кода, просто переопределив суперглобальное значение перед выполнением теста.
Ура, Алекс