Forum: Programmieren allgemein
by Stevie,
6. Aug 2014
So, wie man auch alle anderen Dinge nach dem "Arrange, Act, Assert"-Prinzip testet.
Wobei das in deinem Beispiel etwas komplexer werden kann, denn deine Methode hat weder Eingabe, noch Ausgabe.
Also kann sie nur einen internen Status von TMyClass verändern. Also kann Arrange und Assert etwas mühsam werden,
wenn diese nicht von außen zugänglich sind oder nur über Umwege.
Das läuft dann aber...
Forum: Programmieren allgemein
by Stevie,
6. Aug 2014
Über die Interfaces wird eine Austauchbarkeit der verschiedenen Implementierungen möglich. Toasterbeispiel:
type
TToaster = class
public
constructor Create(const powerSupply: IPowerSupply);
end;
In einem Unittest kannst du nun, um deinen Toaster zu testen, ein Mock für IPowerSupply übergeben, womit du also nicht die richtige Implementierung davon benötigts (denn du willst ja...
Forum: Programmieren allgemein
by Stevie,
5. Aug 2014
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...