Причината, поради която е трудно да се тества единичен клас е , че не можете да инициализирате класа за всеки тест отново, защото може да се инициализира само веднъж (и по този начин ви дава много работа, за да зададете всички стойности правилно за всеки тест).
Защо е трудно да се тества сингълтон?
Трудно е да се тества код, който използва сингълтон.
Не можете да контролирате създаването на единичния обект, защото често той се създава в статичен инициализатор или статичен метод. В резултат на това също не можете да се подигравате на поведението на този екземпляр на Singleton.
Какъв е проблемът със сингълтоните?
Singletons възпрепятства тестването на единици: Singleton може да причини проблеми за записването на тестван код, ако обектът и методите, свързани с него, са толкова тясно свързани, че става невъзможно да се тества без писане напълно функционален клас, посветен на Singleton.
Какви са недостатъците на singleton при тестване на единици?
За да изпълним код, съдържащ сингълтон в тестов ремък, трябва да отпуснем свойството сингълтон. Ето как го правим. Първата стъпка е да добавите нов статичен метод към единичния клас. Методът ни позволява да заменим статичния екземпляр в сингълтона.
Защо сингълтонът пречи на тестването на единици?
При единично тестване всеки един от тестовете трябва да бъде независим един от друг. Друга причина, поради която моделът на дизайн на Singleton затруднява живота ви при тестване на единици, е защото те остават в паметта, докато приложението е живо Следователно те запазват състоянието, докато приложението остава в памет.