Tak, nadal nazywamy to testem jednostkowym, jeśli funkcje wywołują inne funkcje.
Testy jednostkowe powinny testować publiczne zachowanie klasy, a nie prywatne implementacje. Jak sugerują testy Google dotyczące artykułu toaletowego .
Jeśli będziesz przestrzegać zasad Clean Code, twoje funkcje nie powinny być dłuższe niż 4 linie kodu. To uniemożliwia nie testowanie innej funkcji prywatnej za pomocą testów jednostkowych.
Dlaczego nie powinieneś osobno testować większości funkcji prywatnych? Ponieważ refaktoryzacja zmusiłaby Cię do aktualizowania wszystkich testów jednostkowych implementacji. Stanie się to frustrujące, gdy masz ich dużo, podczas gdy zachowanie publiczne nie powinno się zmieniać podczas refaktoryzacji, a zatem test nie powinien wymagać żadnej aktualizacji. Powinieneś być w stanie przetestować prywatne z ich rodzicem publicznym. Czasami warto przetestować skomplikowanych szeregowych, ale zastanawiasz się, czy powinni być osobną klasą?
Test integracji :
Teraz, jeśli funkcja należy do innej klasy, jest inna. Następnie nazwalibyśmy to testowaniem komponentów lub testami integracji. Integrujesz wiele klas i przeprowadzasz z nimi test. Funkcja B zależałaby od funkcji C. Aby móc przetestować jednostkę B, można użyć zastrzyku zależności w celu wyodrębnienia testowanej funkcji, teraz będzie to znowu test jednostkowy.
Niels van Reijmersdal
źródło