Motivul pentru care este greu să testați o clasă singleton este că nu puteți inițializa clasa pentru fiecare test din nou, deoarece poate fi inițializată o singură dată (și astfel vă oferă multă muncă pentru a seta corect toate valorile pentru fiecare test).
De ce este dificil să testezi singleton?
Este greu de testat codul care folosește singleton-uri.
Nu puteți controla crearea obiectului singleton, deoarece adesea este creat într-un inițializator static sau într-o metodă statică. Drept urmare, nici nu puteți bate joc de comportamentul acelei instanțe Singleton.
Care este problema cu cei singuri?
Singletons împiedică testarea unitară: un Singleton poate cauza probleme pentru scrierea codului testabil dacă obiectul și metodele asociate cu acesta sunt atât de strâns legate încât devine imposibil de testat fără a scrie o clasă complet funcțională dedicată Singletonului.
Care sunt dezavantajele singletonului în testarea unitară?
Pentru a rula cod care conține singleton-uri într-un ham de testare, trebuie să relaxăm proprietatea singleton. Iată cum o facem. Primul pas este să adăugați o nouă metodă statică la clasa singleton. Metoda ne permite să înlocuim instanța statică în singleton.
De ce singleton interferează cu testarea unitară?
În testarea unitară, fiecare dintre testele unitare ar trebui să fie independent unul de celăl alt. Un alt motiv pentru care modelul de design Singleton vă face viața dificilă în testarea unitară este , deoarece acestea rămân în memorie până când aplicația este în viață Prin urmare, persistă starea atâta timp cât aplicația rămâne în memorie.