Ja, wir nennen es immer noch einen Unit-Test, wenn die Funktionen andere Funktionen aufrufen.
Unit-Tests sollten das öffentliche Verhalten einer Klasse und nicht die privaten Implementierungen testen. Wie von diesem Google-Test auf dem Toilettenartikel vorgeschlagen .
Wenn Sie die Regeln von Clean Code befolgen, sollten Ihre Funktionen nicht länger als 4 Codezeilen sein. Dies macht es unmöglich, eine andere private Funktion mit Ihren Unit-Tests nicht zu testen.
Warum sollten Sie die meisten privaten Funktionen nicht separat testen? Da das Refactoring Sie zwingen würde, alle Ihre Implementierungstests ständig zu aktualisieren. Dies wird frustrierend, wenn Sie viele davon haben, während sich das öffentliche Verhalten während des Refactorings nicht ändern sollte und der Test daher nicht aktualisiert werden muss. Sie sollten in der Lage sein, Privaten mit ihren öffentlichen Eltern zu testen. Manchmal lohnt es sich vielleicht, komplexe Privaten zu testen, aber fragen Sie sich, ob sie selbst eine separate Klasse sein sollten?
Integrationstest :
Wenn die Funktion Teil einer anderen Klasse ist, ist sie anders. Dann würden wir es Komponententest oder Integrationstest nennen. Sie integrieren mehrere Klassen und führen einen Test gegen sie durch. Funktion B würde von Funktion C abhängen. Um Funktion B testen zu können, könnten Sie die Funktion, die Sie testen, mithilfe der Abhängigkeitsinjektion isolieren. Jetzt wäre es wieder ein Komponententest.
Niels van Reijmersdal
quelle