Sto imparando TDD usando c #, per quanto ne so test dovrebbe guidare lo sviluppo , cioè prima scrivere un test fallito dopo aver scritto il minimo indispensabile codice per passare il test, quindi eseguire il refactoring.
Ma si dice anche che " Programma per interfaccia, non implementazione ", quindi scrivi prima un'interfaccia . È qui che inizia la mia confusione, se scrivo prima Interface allora sta violando due cose
-
Il codice scritto per l'interfaccia è non guidato dal test .
-
Non è il minimo ovviamente posso scriverlo con una classe semplice.
Devo iniziare scrivendo anche i test per l'interfaccia? senza nessuna implementazione cosa testerò?
Se questa domanda sembra scioccamente dispiaciuta per quello, ma sono completamente confuso. Forse sto prendendo le cose troppo alla lettera.