Und dann nochmal die Frage nach den Interfaces. Was ich bisher so gelesen habe (habe erst gerade angefangen, z.B hier
http://wiki.lazarus.freepascal.org/fpcunit) werden mit den
Unit-Tests doch Klassen getestet? Oder ist das nur in den Anfänger-Tutorials so? Weil ich doch meine sonst in Threads hier gelesen zu haben: Gegen Interfaces kann man besser testen usw.
Natürlich werden Klassen (bzw Implementierungen) getestet. Interfaces sind Abstraktionen und Abstraktionen kann man nicht testen. Ein Interface besitzt ja keinen ausführbaren Code, sondern nur die Klasse, die das implementiert.
Was du wahrscheinlich schon öfter gelesen hast, ist der Hinweis, gegen Interfaces (bzw Abstraktionen) zu programmieren. Ich konsumiere also in meiner Klasse TToaster nicht TEnergieversorgung sondern IEnergieversorgung. Somit kann ich in einem Test für meinen Toaster alle Abhängigkeiten (z.B. IEnergieversorgung) ausmocken. Das Stichwort heißt hier: lose Kopplung
Wenn ich das nämlich nicht mache, sondern überall mit den direkten Klassen (Implementierungen) arbeite, dann hab ich keine Nähte, und im schlimmsten Fall in meinem Toaster Test am Ende auch noch TBraunkohlekraftwerk drin, weil alles festverdrahtet ist.