J'apprends TDD en utilisant c #, pour autant que je sache, le test devrait conduire le développement , c'est-à-dire d' abord écrire un test qui échoue après avoir écrit le code minimum pour passer le test, puis refactoriser.
Mais il est également dit que " Programmer vers l'interface, pas la mise en œuvre ", alors écrivez d' abord une interface . C'est là que ma confusion commence, si j'écris d'abord Interface, cela viole deux choses
Le code écrit pour l'interface n'est pas piloté par test .
Ce n'est pas le strict minimum, je peux évidemment l'écrire avec une classe simple.
Dois-je également commencer par écrire des tests d'interface? sans implémentation, que vais-je tester?
Si cette question semble stupide, désolé pour cela, mais je suis complètement confus. Peut-être que je prends les choses trop à la lettre.
contract
. Cela pourrait être sous la forme d'une classe abstraite, par exemple, bien qu'il ne devrait pas s'agir d'une classe / méthode virtuelle car vous ne devriez pas pouvoir l'instancier.
interface
pour tout. Aclass
fournit également une interface, car vous pouvez masquer les détails d'implémentation dans desprivate
variables.