Powodem, dla którego trudno jest przetestować pojedynczą klasę jest to, że nie można ponownie zainicjować klasy dla każdego testu, ponieważ można ją zainicjować tylko raz (a co za tym idzie daje dużo pracy, aby poprawnie ustawić wszystkie wartości dla każdego testu).
Dlaczego testowanie singletona jest trudne?
Trudno przetestować kod używający singletonów.
Nie możesz kontrolować tworzenia obiektu singleton, ponieważ często jest on tworzony w statycznym inicjatorze lub statycznej metodzie. W rezultacie nie możesz również wykpić zachowania tej instancji Singleton.
Na czym polega problem z singletonami?
Singletony utrudniają testowanie jednostkowe: Singleton może powodować problemy z pisaniem testowalnego kodu, jeśli obiekt i metody z nim związane są tak ściśle powiązane, że niemożliwe jest testowanie bez pisania w pełni funkcjonalna klasa dedykowana Singletonowi.
Jakie są wady singletona w testach jednostkowych?
Aby uruchomić kod zawierający singletony w wiązce testowej, musimy rozluźnić właściwość singleton. Oto jak to robimy. Pierwszym krokiem jest dodanie nowej metody statycznej do klasy singleton. Metoda pozwala nam zastąpić instancję statyczną w singletonie.
Dlaczego singleton zakłóca testowanie jednostek?
W testach jednostkowych każdy z testów jednostkowych powinien być od siebie niezależny. Innym powodem, dla którego wzorzec projektowy Singleton utrudnia życie w testach jednostkowych, jest ponieważ pozostają one w pamięci do czasu, aż aplikacja będzie działać W związku z tym utrzymują stan tak długo, jak aplikacja pozostaje w pamięć.