Grunnen til at det er vanskelig å teste en singleton-klasse er at du ikke kan initialisere klassen for hver test igjen, fordi den kun kan initialiseres én gang (og dermed gir deg mye arbeid med å stille inn alle verdiene riktig for hver test).
Hvorfor er det vanskelig å teste singleton?
Det er vanskelig å teste kode som bruker singletons.
Du kan ikke kontrollere opprettelsen av singleton-objektet fordi det ofte lages i en statisk initialisering eller statisk metode. Som et resultat kan du heller ikke håne oppførselen til den Singleton-forekomsten.
Hva er problemet med singletons?
Singler hindrer enhetstesting: En Singleton kan forårsake problemer for skriving av testbar kode hvis objektet og metodene knyttet til det er så tett koblet at det blir umulig å teste uten å skrive en fullt funksjonell klasse dedikert til Singleton.
Hva er ulempene med singleton i enhetstesting?
For å kjøre kode som inneholder singletons i en testsele, må vi slappe av singleton-egenskapen. Her er hvordan vi gjør det. Det første trinnet er å legge til en ny statisk metode til singleton-klassen. Metoden lar oss erstatte den statiske forekomsten i singletonen.
Hvorfor forstyrrer singleton enhetstesting?
I enhetstesting bør hver av enhetstestene være uavhengige av hverandre. En annen årsak til at Singleton-designmønsteret gjør livet ditt vanskelig i enhetstesting, er fordi de forblir i minnet til applikasjonen er i live. Derfor vedvarer de tilstanden så lenge applikasjonen forblir i minne.