Наиболее вероятная причина - без проверки кода вашего Singleton - в том, что при его инициализации не удается загрузить какую-либо внешнюю конфигурацию и, следовательно, происходит сбой.
Синглеты в автоматических модульных тестах могут быть проблемой, поскольку иногда вам нравится, что они ведут себяиначе для конкретного сценария, который вы тестируете (например, вам нужен один сценарий, где generateId
возвращает -1, другой - когда он возвращает 4354353, а другой - когда выдает RuntimeException
- просто чтобы вы могли увидеть, как работает код, использующий Singleton.В таких случаях рекомендуется смена дизайна, так как синглтоны не входят в число рекомендуемых шаблонов проектирования и в некоторой степени рассматриваются как анти-шаблоны.