« [イベント] Tech Fielders セミナー 「Agile Day」 に参加しました (2010/01/22) | トップページ | [記事紹介] Coding Dojo: InfoQ ~ TDDを根づかせる:導入の問題と解決策 »

2010年1月26日 (火)

[コラム] RED One, GREEN All

これは、 実行するテストケースの数です。

RED One, GREEN All

すなわち。 テストファーストしているときに、

  • テストケースを追加/修正したときは、 そのテストケースひとつだけを実行して RED (失敗) になることを確認すればよい。
  • 製品コードを書いたときは、 その部分に関係するテストケースを全て実行して GREEN (成功) を確認しなければならない。

あるテストケースを書いたとき、 そのテストケース以外には何も影響が無いはずですよね。 ですから、 その新しいテストケースだけを実行すればよいわけです。
次に、 その新しいテストケースを通るように製品コードを直しますが、 それによって既存のテストケースが失敗してしまう (つまり、 製品コードにバグを作りこんでしまう) 可能性があります。 したがって、 その製品コードのメソッドを対象としているテストケースは全部流してみる必要があります。
RED を確認するにはテストケース 1つ、 GREEN を確認するには全部、 というわけです。

例として、 C# 2008 Express Edition + NUnit 2.5 の場合を紹介しておきます。

20100126_redgreen01
テストファーストを進めてきて、 19個のテストケースがグリーンになったところです。

20個目のテストケースに取り掛かります。
20100126_redgreen02
まず、 テストケース HomeworkTest04_3char を追加しました。

NUnit が自動ロードする設定になっていると、 追加したテストケース HomeworkTest04_3char がリストに増えます。 (自動ロードにしていない場合は、 手動でロードしてください。)
20100126_redgreen03
ここでは、 今追加したテストが失敗すること (RED) を確認すればよいので、 追加したテストケースを右クリックして [Run] を選びます。 そうすると、 そのテストケースだけが実行されます。 あるいは、 そのテストケースをダブルクリックしても同じ動作になります。
20100126_redgreen04
たしかに、 テストケースがひとつだけ実行され、 RED になりました。

それでは製品コードを書きましょう。
書きあがったら、 GREEN を確認します。
20100126_redgreen05
さっきと同じように右クリックしますが、 今度は [Run All] を選びます。 すると、 リストに見えているテストが全て実行されます。(これではテストの実行範囲が広すぎるという場合は、 リストのツリーの上位ノードで [Run] します。)
20100126_redgreen06
20個のテストケースが全部実行され、 オールグリーンが確認できました。

|

« [イベント] Tech Fielders セミナー 「Agile Day」 に参加しました (2010/01/22) | トップページ | [記事紹介] Coding Dojo: InfoQ ~ TDDを根づかせる:導入の問題と解決策 »

*コラム」カテゴリの記事

<NUnit>」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: [コラム] RED One, GREEN All:

« [イベント] Tech Fielders セミナー 「Agile Day」 に参加しました (2010/01/22) | トップページ | [記事紹介] Coding Dojo: InfoQ ~ TDDを根づかせる:導入の問題と解決策 »