Ich lerne TDD mit c #, soweit ich weiß , sollte Test die Entwicklung vorantreiben , dh erstmal einen Fehlertest schreiben schreiben, nachdem der Code mit dem absoluten Minimum geschrieben wurde , um den Test zu bestehen, und dann ein Refactoring durchführen.
Es heißt aber auch, dass " Program to Interface, nicht Implementation ", also schreibe zuerst ein Interface . Hier setzt meine Verwirrung ein. Wenn ich zuerst Interface schreibe, verstößt es gegen zwei Dinge
Der für die Schnittstelle geschriebene Code wird nicht durch einen Test gesteuert .
Es ist nicht das Nötigste offensichtlich kann ich es mit einer einfachen Klasse schreiben.
Soll ich anfangen, auch Tests für das Interface zu schreiben? Was soll ich ohne Implementierung testen?
Wenn diese Frage albern klingt, tut mir das leid, aber ich bin total verwirrt. Vielleicht nehme ich die Dinge zu wörtlich.
contract
. Dies kann beispielsweise die Form einer abstrakten Klasse haben, sollte jedoch keine virtuelle Klasse / Methode sein, da Sie sie nicht instanziieren können sollten.
interface
für alles zu verwenden. Aclass
bietet auch eine Schnittstelle, da Sie Implementierungsdetails inprivate
Variablen ausblenden können .