Oggi abbiamo formato TDD e abbiamo scoperto il seguente punto di incomprensione.
Il compito è per la somma di ritorno "1,2" dei numeri che è 3. Ciò che ho scritto (in C #) era:
numbers = input.Split(',');
return int.Parse(numbers[0]) + int.Parse(numbers[1]); //task said we have two numbers and input is correct
Ma altri ragazzi hanno preferito farlo diversamente. Innanzitutto, per l'ingresso "1,2" hanno aggiunto il seguente codice:
if (input == "1,2")
return 3;
Quindi hanno introdotto un altro test per l'input "4,5" e hanno modificato l'implementazione:
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
E dopo hanno detto "Okay, ora vediamo lo schema" e hanno implementato quello che inizialmente ho fatto.
Penso che il secondo approccio si adatti meglio alla definizione TDD ma ... dovremmo essere così severi al riguardo? Per me va bene saltare piccoli passi banali e combinarli in "twinsteps" se sono abbastanza sicuro da non saltare nulla. Ho sbagliato?
Aggiornare. Ho fatto un errore non chiarendo che non era il primo test. Esistevano già alcuni test, quindi "return 3" non era in realtà il codice più semplice per soddisfare il requisito.