Liesers Clean Code 15.11.2021, 00:00 Uhr

Zwischen Schwarz und Weiß liegt jede Menge Grau

Blackbox- versus Whitebox-Tests.
(Quelle: dotnetpro)
Von Teilnehmern in meinen Seminaren höre ich immer wieder den Einwand, dass man private Methoden nicht testen solle. Alle Tests mögen doch bitte ausschließlich durch das öffentliche API erfolgen. Es gibt hier also eine Präferenz für Blackbox-Tests. Sicher hat dies Vorteile. Doch meist stecken hinter einseitigen oder sogar dogmatischen Aussagen Potenziale, die man mit einer differenzierten Betrachtung heben kann. Darum soll es im Folgenden gehen.
Mit Blackbox-Test bezeichnet man einen Test, der die Implementation wie eine Blackbox betrachtet, deren Inhalt nicht nach außen sichtbar ist. Es wird die öffentliche Schnittstelle, das public API getestet. Solche Tests sind unbestritten notwendig, um herauszufinden, ob die öffentlich sichtbare Methode tut, was sie soll. Die Frage, die sich nun stellt, ist allerdings, ob es vorteilhaft ist, ausschließlich über das öffentliche API zu testen. Hat es ausschließlich Vorteile, nur mit Blackbox-Tests zu arbeiten? Welche Vorteile haben gegebenenfalls Whitebox-Tests? Damit werden Tests bezeichnet, die auch die Interna eines öffentlichen API kennen und testen.

dotnetpro

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde
  • 2 Monate Gratis testen
  • Über 4.000 qualifizierte Fachartikel
  • Auf jedem Gerät verfügbar