Oggi stavamo formando TDD e abbiamo trovato il seguente punto di incomprensione.
L'attività è per l'input "1,2" restituisce la somma dei numeri che è 3. Quello 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 in un altro modo. Innanzitutto, per l'input "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 l'implementazione modificata:
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
E in seguito hanno detto "Ok, ora vediamo lo schema" e implementato ciò 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 che non salterò nulla. Mi sbaglio?
Aggiornamento. Ho fatto un errore non chiarendo che non era il primo test. C'erano già alcuni test quindi "return 3" in realtà non era la parte di codice più semplice per soddisfare il requisito.