Microsoft MVPである当社技術顧問の増田による、C#によるテスト駆動開発の講習会がありました。

システムガーディアン技術顧問
趣味はセミアコでブルースを弾くことと農園でラズベリーを育てることとF#でプログラミングすること。仕事は、ええ、びしびしとプログラミング技術を鍛えることと、ばしばしとC#でプログラムコードを書くことです。
テスト駆動開発 (てすとくどうかいはつ、test-driven development; TDD)
プログラム開発手法の一種で、プログラムに必要な各機能について、最初にテストを書き(これをテストファーストと言う)、そのテストが動作する必要最低限な実装をとりあえず行った後、コードを洗練させる、という短い工程を繰り返すスタイルである。多くのアジャイルソフトウェア開発手法、例えばエクストリーム・プログラミングにおいて強く推奨されている。近年はビヘイビア駆動開発へと発展を遂げている。
@see Wikipedia
テスト駆動開発のメリット
- テストファーストとして、自分が最初の使用者となりテストを行い、バグが少ないように少しずつ作っていくことが出来る。
- テストしやすさを意識してクラス設計をする為シンプルな構造になりやすい。
- 何度でも繰り返しテストすることが出来る
- テストコードを残しておくことで、ソース自体がドキュメントになる。
命題
CheckIP.cs
UnitTest1.cs
空欄の場合メソッド部分で右クリックを行い【テスト実行】を選択します。
テストエクスプローラが表示され、空欄の場合メソッドがテストに失敗したことが表示されます。
ユニットテストが通るようにCheckメソッドを修正していきます。
空欄の場合のチェック処理を追加しました。IPv4アドレスが空欄の場合はfalseを返すようにします。
再度空欄の場合メソッドにて【テストの実行】を行います。
空欄の場合メソッドがテストを通過しました!
同じようにCheckメソッドをユニットテストそれぞれのメソッドを通るように追加、修正を行います。
全てのユニットテストに通りました。
このようにテスト用のクラスを作り、テストしながら少しずつ作っていく『テストファースト』によりバグの少ないスムーズな開発が出来ます。
//Checkメソッド追記部分は私のソースで恐縮です。増田のソースではありません。