История изменений
Исправление seiken, (текущая версия) :
Синглтон создаёт проблемы не для тестирования себя, а для юнит-тестирования компонентов, которые его используют.
Синглтон может быть частью фреймворка, и реализовывать функционал, который работает (почти) прозрачно для приложений. В данном случае сложность тестирования именно на стороне синглотона. Для этого можно создать фейковые тестовые приложения, использующие данную фичу фреймворка, и тестировать их отдельно от «полновесных» приложений. Причем, сам синглтон может и не содержать никакой логики кроме «активации» фичи (надежно, только один раз для всех тредов приложения), т.е. содержать всего пару строк кода, вызывающих другие части фреймворка.
Исходная версия seiken, :
Синглтон создаёт проблемы не для тестирования себя, а для юнит-тестирования компонентов, которые его используют.
Синглтон может быть частью фреймворка, и реализовывать функционал, который работает (почти) прозрачно для приложений. В данном случае сложность тестирования именно на стороне синглотона. Для этого можно создать тестовые приложения, использующие данную фичу фреймворка, и тестировать их отдельно от «полновесных» приложений. Причем, сам синглтон может и не содержать никакой логики кроме «активации» фичи (надежно, только один раз для всех тредов приложения), т.е. содержать всего пару строк кода, вызывающих другие части фреймворка.