CodeZine(コードジン)

特集ページ一覧

Visual StudioのMSTestでTDDを行う方法

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/02/10 14:00
目次

NUnitとMSTest

 MSTestはVisual Studioに付属しているので、Microsoft製であるという安心感がありますし、オープンソース系のツール利用が禁じられている現場でも使うことができます。機能的には、NUnitと比べて一長一短があります。

NUnitとMSTestの比較
  NUnit(2.6) MSTest (VS2010付属)
提供 NUnit.org Visual Studio(有償版)に同梱
テストの作成 すべて手書き 製品コードから雛形を自動生成できる
※privateメソッドをテストするためのプロキシクラスも自動生成できる(注2
テスト実行 IDEとは別(GUIまたはコンソール、注3
※IDE内から実行するためのサードパーティツールはある
IDE内で実行
※コンソールからも可能
アサーションの種類 Assert.That()などもあり、先進的で豊富 保守的だが、型指定ができるなど.NET Frameworkの機能を生かしている部分もある
パラメタライズドテスト ×
※本稿で、サポートツールを紹介
データ駆動テスト ×
※もちろんそういうコードを書けば可能

※テストデータの供給は、データベースだけでなくExcelでも可能(注4を参照)
テストのデバッグ実行
(注を参照)
面倒
※デバッグ対象としてNUnitを起動する
簡単
カバレッジ計測 面倒(Premiumエディション以上)、
または、サードパーティツールを使用
簡単に取得できる(Premiumエディション以上、後述)
注2: privateメソッドのテスト

 Visual Studio 2010(有償版)は、privateメソッドにアクセスするためのプロキシクラスを自動生成してくれます。詳しくは、「Visual Studio 単体テスト機能大全(1) 改訂版 Visual Studioで作る単体テスト、基本のき(VS2010向け改訂版)(p.3)」を参照してください。

注3: Visual Studio 11とNUnitの統合

 現在はVisual Studioの中でNUnitのテストを実行するにはサードパーティ製ツールが必要ですが、Visual Studio 11ではその必要はなくなると言われています(参考 → TDD.NET「[NEWS] Visual Studio と NUnit が統合される(続) ~ Unit Test Explorer の動画」)。

注4: データ駆動テスト(Data Driven Test)とコード化されたUIテスト(Coded UI Test)

 データ駆動テストについては、「Visual Studio 単体テスト機能大全(4) Visual Studioで作るデータドリブンテスト」を参照してください。

 また、「テストを書く」という観点から表には含めませんでしたが、Visual Studio 2010の上位版には「コード化されたUIテスト」という機能もあります。こちらは、「Visual Studio 単体テスト機能大全(6) Visual Studioで作る単体テスト、UI操作の自動実行」をご覧ください。

注5: デバッグ実行

 TDDに慣れてくると、デバッグモードでテストを走らせてステップ実行することは、ほとんどなくなります。細かいステップでテストケースを追加していれば、予想外のREDが出ても、たいていは自分のミスにすぐ気づくことができるからです。そういう意味では、デバッグ実行がしやすいかどうかは、たいして問題になりません。

MSTestでテストファースト

 それでは実際にMSTestでテストファーストしてみましょう。お題は前回の記事と同じ「野球の打率計算」を使います。テストケースを作っていく順序や考え方などは、前回の記事を参照してください。ただし今回は、「お題その1」だけとします。なお、Visual Studioのユニットテスト関連機能については、WINGSプロジェクトりばてぃ氏による「Visual Studio 単体テスト機能大全」も参照してください。

Visual Studio のプロジェクトを用意する

 MSTestでは、製品コードのプロジェクトとテストコードのプロジェクトを、必ず分けて作ります。Visual Studioのユニットテストをサポートする機能が、テストコード専用のプロジェクト(テストプロジェクト)でないとテストコードを認識してくれない(テストを実行できない)からです。

作成するプロジェクト
  製品コード テストコード
プロジェクトの種類 クラスライブラリ テストプロジェクト
プロジェクトの名前 Tddbc横浜 Tddbc横浜Test
「新しいプロジェクトの追加」ダイアログ ~ テストプロジェクトは「Visual C#」-「テスト」にある
「新しいプロジェクトの追加」ダイアログ

 次に、ソリューションエクスプローラー上で、[Tddbc横浜Test]プロジェクトを右クリックし、コンテキストメニューの[参照の追加...]を使い、[プロジェクト]タブで、[Tddbc横浜]プロジェクトへの参照を追加しておきます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

もっと読む

著者プロフィール

  • biac(ばいあっく)

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5