今日、私たちは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"のテストをもう1つ導入し、実装を変更しました。
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
そしてその後、彼らは「さて、今はパターンが見える」と言って、私が最初にやったことを実装しました。
2番目のアプローチはTDDの定義により適していると思いますが、...厳密にすべきでしょうか?私にとっては、些細な赤ちゃんのステップをスキップして、何もスキップしないことを十分に確信している場合は、それらを「ツインステップ」に結合してもかまいません。私が間違っている?
更新。私はそれが最初のテストではないことを明確にしないことで間違いを犯しました。すでにいくつかのテストが行われているため、「return 3」は実際に要件を満たすための最も単純なコードではありませんでした。