Um zu überprüfen, ob Sie über genügend Tests verfügen oder nicht, können Sie Ihre Codeabdeckung und die durch die Tests hervorgerufene Zweigabdeckung überprüfen (möglicherweise mithilfe eines Abdeckungswerkzeugs, möglicherweise manuell durch Überprüfen der Codepfade oder mithilfe eines Debuggers).
Wenn Sie zu dem Schluss kommen, dass die Tests für die Unterklassen eine ausreichende Abdeckung für den Code Ihrer Basisklassen bieten, wird das Hinzufügen weiterer Tests Ihnen offensichtlich keinen großen Nutzen bringen. Wenn es Codepfade gibt, die Sie nur testen können, indem Sie bestimmte Tests direkt mit der Basisklasse hinzufügen, sollten Sie diesen Weg einschlagen.
Ein weiterer möglicher Grund für das "direkte Testen Ihrer Basisklasse" besteht darin, dass Sie eine bestimmte Funktion dieser Klasse "isoliert" testen möchten. Manchmal ist es einfacher, Testfälle direkt für eine bestimmte Methode zu entwerfen, als diese Methode nur indirekt zu testen, indem Sie die Methoden Ihrer Unterklassen aufrufen, die diese Methode verwenden.
Beachten Sie , dass Ihre Basisklasse wahrscheinlich abstrakt ist , wenn Sie eine generische Basisklasse haben, für die das typische Verwendungsszenario darin besteht , eine Unterklasse abzuleiten. Zum Testen einer solchen Klasse müssen Sie also trotzdem eine Ableitung vornehmen. In diesem Fall könnte das Testen "der Basisklasse direkt" natürlich bedeuten, eine spezielle Ableitung nur zu Testzwecken hinzuzufügen.