Attualmente sto imparando a conoscere TDD e sto cercando di metterlo in pratica nei miei progetti personali. Ho anche utilizzato il controllo della versione ampiamente su molti di questi progetti. Sono interessato all'interazione di questi due strumenti in un tipico flusso di lavoro, specialmente quando si tratta della massima per mantenere piccoli i commit. Ecco alcuni esempi che ti vengono in mente:
-
Inizio un nuovo progetto e scrivo un semplice test per creare una classe ancora inesistente. Devo eseguire il test prima di scrivere la classe anche se il test non viene compilato? O dovrei eliminare la quantità minima di codice necessaria per compilare il test prima di eseguire il commit?
-
Trovo un bug e scrivo un test per ricrearlo. Devo eseguire il test fallito o implementare la correzione dei bug e poi eseguire il commit?
Questi sono i due esempi che vengono subito in mente. Sentiti libero di fornire esempi aggiuntivi nella risposta.
Modifica
Ho fatto un'ipotesi in entrambi gli esempi che subito dopo aver scritto il test scriverò il codice per far passare il test. Potrebbe anche presentarsi un'altra situazione: lavoro su un progetto usando TDD per diverse ore senza impegnarmi. Quando finalmente faccio i commit, voglio spezzare il mio lavoro in piccoli pezzi. (Git rende questo relativamente facile anche se vuoi voler commettere solo alcune delle modifiche in un singolo file.)
Ciò significa che la mia domanda riguarda tanto quanto da impegnare quanto lo è per quando per il commit.