Im Test selber wird dann die zu testende Klasse wirklich als Klasse erzeugt und angesporchen, sprich dafür werden die Interfaces nicht benutzt?
Über die Interfaces wird eine Austauchbarkeit der verschiedenen Implementierungen möglich. Toasterbeispiel:
Delphi-Quellcode:
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 TToaster testen und nicht was anderes). Über einen Mock kannst du auch sicherstellen, dass der TToaster die entsprechenden Methoden von IPowerSupply aufruft, die gemäß Spezifikation erwartet werden.
Zu dem Thema noch
ein interessantes Video