Сьогодні ми тренували TDD і виявили наступний момент непорозуміння.
Завдання полягає у введенні «1,2» повернення суми чисел, що дорівнює 3. Що я написав (на C #):
numbers = input.Split(',');
return int.Parse(numbers[0]) + int.Parse(numbers[1]); //task said we have two numbers and input is correct
Але інші хлопці вважали за краще це робити інакше. По-перше, для введення "1,2" вони додали наступний код:
if (input == "1,2")
return 3;
Потім вони запровадили ще один тест на введення "4,5" та змінили реалізацію:
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
А після цього вони сказали «Гаразд, зараз ми бачимо викрійку» і реалізували те, що я спочатку робив.
Я думаю, що другий підхід краще відповідає визначенню TDD, але ... чи варто бути таким суворим? Для мене нормально пропустити тривіальні дитячі кроки та об'єднати їх у "двічі кроків", якщо я досить впевнений, що я нічого не пропущу. Я помиляюся?
Оновлення. Я помилився, не уточнивши, що це був не перший тест. Уже були деякі тести, тому "повернення 3" насправді не було найпростішим фрагментом коду для задоволення вимоги.