今天,我们正在培训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定义,但是...我们应该对此严格吗?对我来说,如果我确定我不会跳过任何步骤,则可以跳过琐碎的婴儿步骤并将其合并为“ twinsteps”。我错了吗?
更新。我没有弄清楚这不是第一个测试,所以犯了一个错误。已经有一些测试,所以“返回3”实际上并不是满足要求的最简单的代码。