kann mir jemand mal erklären wie das gemeint ist mit den Interfaces und der Testbarkeit?
Man nutzt z.B. im Programm nur das Interface und kann zum Testen die Klasse/Objektinstanz hinter dem Interface austauschen.
Zum Testen wird einfach eine andere Klasse verwendet, welche zusätzliche Debugfeatures enthält oder die immer nur definierte Testdaten liefert, so daß man immer wieder das gleiche Verhalten hat, welches sich leichter testen lässt, da man dann immer das selbe Ergebnis rausbekommt.
z.B. du hast einen Parser/Auswertecode, welcher getestet werden soll, dann wird in diesem Fall die Klasse ausgetauscht, welche die zu verarbeitenden Daten liefert.
Man kann auch die Anzeigeklasse austauschen, welche die verarbeiteten Daten gleich prüft.
Grund: Man testet nur den einen Zwischenteil, da drumrum alles gegen funktionierend Testklassen ausgetauscht wurde.
So lässt sich jeder Teil einzeln prüfen und man weiß genau wo der Fehler ist.
Schaust du zum Test aber nur auf die Anzeige, dann kann der Fehler sonstwo sein.