Синглтоны - плохие новости, как я объяснил здесь .
Если говорить более конкретно на ваш вопрос, то синглтоны чрезвычайно сложны для юнит-теста. Что является одной из причин, почему они плохие новости.
Используйте взамен внедрение-зависимости .
РЕДАКТИРОВАТЬ ДОБАВИТЬ:
Полагаю, вы могли бы написать набор модульных тестов, где каждый модульный тест находится в своем собственном наборе тестов, а все наборы тестов настроены для запуска в отдельном процессе. Это должно изолировать каждый модульный тест от других.
Впрочем, производительность была бы ужасной, и вам было бы лучше, если бы вместо этого вы использовали подход DI.
(я предполагаю, что вы используете phpunit для своих модульных тестов здесь)