La raó per la qual és difícil provar una classe singleton és perquè no pots tornar a inicialitzar la classe per a cada prova, perquè només es pot inicialitzar una vegada (i per tant et dóna molta feina per establir tots els valors correctament per a cada prova).
Per què és difícil provar singleton?
És difícil provar el codi que utilitza singletons.
No pots controlar la creació de l'objecte singleton perquè sovint es crea amb un inicialitzador estàtic o mètode estàtic. Com a resultat, tampoc no us podeu burlar del comportament d'aquesta instància de Singleton.
Quin és el problema amb els singletons?
Singletons dificulten les proves d'unitats: un Singleton pot causar problemes per a escriure codi comprovable si l'objecte i els mètodes associats amb ell estan tan estretament units que es fa impossible provar sense escriure una classe totalment funcional dedicada als Singleton.
Quins són els desavantatges de singleton a les proves d'unitats?
Per executar codi que contingui singletons en un arnès de prova, hem de relaxar la propietat singleton. Així és com ho fem. El primer pas és afegir un mètode estàtic nou a la classe singleton. El mètode ens permet substituir la instància estàtica al singleton.
Per què singleton interfereix amb les proves unitàries?
A les proves unitàries, cadascuna de les proves unitàries hauria de ser independent una de l' altra. Un altre motiu pel qual el patró de disseny Singleton us dificulta la vida en les proves d'unitats és perquè romanen a la memòria fins que l'aplicació està viva Per tant, persisteixen l'estat mentre l'aplicació es mantingui a la memòria.