Почему тестирование синглтонов или шаблона реестра сложно на языке, например PHP, который управляется запросом?
Вы можете писать и запускать тесты помимо фактического выполнения программы, чтобы вы могли влиять на глобальное состояние программы и запускать некоторые срывы и инициализацию для каждой тестовой функции, чтобы получить ее в одно и то же состояние для каждого теста.
Я что-то пропустил?