SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#で始めるテスト駆動開発入門

Visual StudioのMSTestでTDDを行う方法

C#で始めるテスト駆動開発入門(2)

コードカバレッジ

 Premiumエディション以上を使っているのでしたら、せっかくですからコードカバレッジ機能も利用してみましょう。

コードカバレッジの設定

 ユニットテスト実行時のコードカバレッジを見るには、以下のように設定します(Visual Studio 2010 Ultimate エディションの場合)。

 まず、「テストの設定」ダイアログを開きます。下図のようにメニューから[テスト]-[テスト設定の編集]-[ローカル(local.testsettings)]と選びます([アクティブなテスト設定の選択]が[ローカル(local.testsettings)]の場合)。あるいは、ソリューションエクスプローラーで[Solution Items]配下にある[Local.testsettings]をダブルクリックしても、同じです。

「テストの設定」ダイアログを開くメニュー
「テストの設定」ダイアログを開くメニュー

 すると「テストの設定」ダイアログが開くので、次の図のように、①左側のリストから[データと診断]を選び、②右側上の「ロール」リストで[<ローカルコンピューターのみ>]を選択し、③右側下のリストの中の[Code Coverage]の右のチェックボックスにチェックを入れてから、④そのリストの上にある[構成]ボタンをクリックします。

「テストの設定」ダイアログ
「テストの設定」ダイアログ

 今度は「Code Coverageの詳細」ダイアログが出て来るので、カバレッジを計測したいアセンブリにチェックを入れます。ここでは、[Tddbc横浜.dll]にチェックを付けて、OKします。

「Code Coverageの詳細」ダイアログ
「Code Coverageの詳細」ダイアログ

 ちょっと面倒でしたが、これで設定は完了です。

コードカバレッジの利用

 それでは、再度テストを実行してから、「コードカバレッジの結果」を見てみましょう(メニュー[テスト]-[ウィンドウ]-[コードカバレッジの結果])。「コードカバレッジの結果」ペインの上部に並んでいるアイコン中の[コードカバレッジの色分けを表示](下図ではオレンジ色になっている)をクリックすると、カバレッジを計測したソースコードに色が付きます。

コードカバレッジの結果を表示
コードカバレッジの結果を表示

 ここでは、「お題その3」(前回の記事(p.5))のテストケースをまだ書いていないのに、それに該当する製品コードを「うっかり」書いてしまった(「←追加」とコメントしてある2行)ために、テスト時に実行されなかった行(return 0.0m;)が赤い背景色で表示されています。「自動化テストがREDの時に、それをGREENにするためだけの製品コードを書く」というルールを守ってテストファーストしていれば、すべての行が青色の背景(カバレッジ100%)になったはずです。

 このようにTDDにおいてコードカバレッジは、「ちゃんとテストファーストしたつもりだけど、うっかりテストなしで書いてしまったところはないかな?」ということを自分でチェックするために使います。当然ながら、「ここはTDDせずに直に書く!」と決めて書いたところは、赤くなります。100%じゃないから悪い、ということにはなりません。また、逆にたとえ100%だったとしても、テストケースがすべて正しいとは保証されませんから、バグはないということにもなりません。

次のページ
MSTestのアサーション

この記事は参考になりましたか?

C#で始めるテスト駆動開発入門連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6382 2012/02/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー