Anledningen till att det är svårt att testa en singleton-klass är att du inte kan initiera klassen för varje test igen, eftersom den bara kan initieras en gång (och därmed ger dig mycket arbete för att ställa in alla värden korrekt för varje test).
Varför är det svårt att testa singel?
Det är svårt att testa kod som använder singeltoner.
Du kan inte styra skapandet av singleton-objektet eftersom det ofta skapas med en statisk initialiserare eller statisk metod. Som ett resultat kan du inte heller håna beteendet hos den Singleton-instansen.
Vad är problemet med singlar?
Singletons hindrar enhetstestning: En Singleton kan orsaka problem för skriva testbar kod om objektet och de metoder som är associerade med det är så tätt kopplade att det blir omöjligt att testa utan att skriva en fullt fungerande klass tillägnad Singleton.
Vilka är nackdelarna med singleton vid enhetstestning?
För att köra kod som innehåller singlar i en testsele måste vi slappna av singelegenskapen. Så här gör vi. Det första steget är att lägga till en ny statisk metod till singelklassen. Metoden tillåter oss att ersätta den statiska instansen i singeltonen.
Varför stör singleton enhetstestning?
I enhetstestning bör varje enhetstester vara oberoende av varandra. En annan anledning till vilken Singleton-designmönstret gör ditt liv svårt vid enhetstestning är eftersom de finns kvar i minnet tills applikationen är vid liv. Därför består de i tillståndet så länge som applikationen finns kvar i minne.