Der Grund, warum es schwierig ist, eine Singleton-Klasse zu testen, ist, dass man die Klasse nicht für jeden Test neu initialisieren kann, weil sie nur einmal initialisiert werden kann (und somit macht Ihnen viel Arbeit, um alle Werte für jeden Test richtig einzustellen).
Warum ist es schwierig, Singleton zu testen?
Code, der Singletons verwendet, ist schwer zu testen.
Sie können die Erstellung des Singleton-Objekts nicht kontrollieren, da es oft in einem statischen Initialisierer oder einer statischen Methode erstellt wird. Daher können Sie das Verh alten dieser Singleton-Instanz auch nicht nachahmen.
Was ist das Problem mit Singletons?
Singletons behindern Komponententests: Ein Singleton kann Probleme beim Schreiben von testbarem Code verursachen, wenn das Objekt und die damit verbundenen Methoden so eng miteinander verbunden sind, dass es unmöglich wird, ohne Schreiben zu testen eine voll funktionsfähige Klasse, die dem Singleton gewidmet ist.
Was sind die Nachteile von Singleton beim Komponententest?
Um Code, der Singletons enthält, in einem Testrahmen auszuführen, müssen wir die Singleton-Eigenschaft lockern. So machen wir es. Der erste Schritt besteht darin, der Singleton-Klasse eine neue statische Methode hinzuzufügen. Die Methode ermöglicht es uns, die statische Instanz im Singleton zu ersetzen.
Warum stört Singleton Unit-Tests?
Beim Unit-Test sollte jeder der Unit-Tests unabhängig voneinander sein. Ein weiterer Grund, aus dem das Singleton-Entwurfsmuster Ihnen das Leben beim Unit-Testen erschwert, ist weil sie im Speicher verbleiben, bis die Anwendung aktiv ist Daher beh alten sie den Zustand bei, solange die Anwendung im Speicher.