![]() |
||
|
.NET Tools テスト駆動開発ツール最前線(後編) − Mockオブジェクトを使ったNUnit 2.2によるテスト − (株)ピーデー 川俣 晶2004/11/17 |
||
|
|
||
前編では、テスト駆動開発ツールNUnitの新版であるNUnit 2.2の新機能について紹介した。今回は、NUnit 2.2の新機能の中でも最も注目すべき「Mockオブジェクト」と、NUnit 2.2によるテストを支援する2つのツール「Test Driven .NET」と「NMock」について解説する。
Test Driven .NETによる統合されたテスト
前編で見てきたように、NUnitのGUIテストランナーも進化しているが、Visual Studio .NET(以下、VS.NET)で開発していると、いちいち別ウィンドウを見るのは面倒である。VS.NET内部でNUnitのテストを実行する方法はないものか。それを実現するためのソフトとして、Test Driven .NETが存在する。これは、かつて「NUnitAddIn」と呼ばれていたものである。
Test Driven .NETは、NUnitのほかに以下のフレームワークなどにも対応する。
- Visual Studio 2005 Team System
- MbUnit(単体テスト・フレームワーク。)
また以下の開発環境に対応する。
- Visual Studio .NET 2002
- Visual Studio .NET 2003
- Visual Studio 2005
- Visual C++ Express
- Visual C# Express
- Visual Web Developer Express
- Visual Basic Express
インストール方法は簡単なので詳しい説明は割愛する。すでにVS.NET 2003がインストールされていれば、インストール画面で「Typical」を選択するだけで、特にインストール先のディレクトリを選択する画面を見ることなく、すぐに終わるだろう。なお、ここではTestDriven.NET-0.9.670-RC1.msiを使用している。
使用方法は簡単である。Test Driven .NETのインストール後にVS.NETを開き、テストを含むプロジェクトを開く。ここで、ソリューション・エクスプローラ内のプロジェクト名を右クリックすると、[Run Test(s)]というメニューが増えている。これを選ぶと、テストが実行され、結果がVS.NET内の[出力]ウィンドウに表示される。以下はそれを行った例である。
![]() |
| Test Driven .NETを用いたVS.NET内でのテスト実行 |
| Test Driven .NETをインストールすれば、VS.NET内からNUnitのテストを実行し、その結果を[出力]ウィンドウで確認することができる。 |
しかし、この程度なら、GUIテストランナーを使っても大差はない。要するに、テストのプロジェクトの設定として、デバッグ時にGUIテストランナーを実行するような設定を仕込んでおけばよいだけのことである。これで[F5]キーを叩くだけでテストを実行できる。
そうではなく、Test Driven .NETの真価は、むしろ特定のテスト・メソッドの実行にあると筆者は感じる。例えば、特定の1つのテスト・メソッドを実行したいとしよう。特定の1つのテスト・メソッドの実行は、特定メソッドがテストをパスするまでソースを修正するケースや、テスト・メソッドのデバッグのケースで、よく行う作業といえる。
GUIテストランナーでも、特定のメソッドを選択しておけば、後はRunボタンをクリックするだけでそれを実現できる。しかし、Test Driven .NETはもっと便利なのである。何と、コード・エディタ上のテスト・メソッドのメソッド名を右クリックすると、それを実行する[Run Test(s)]というメニュー項目が出現するのである。
![]() |
| コード・エディタ上からのテスト・メソッドの実行 |
| Test Driven .NETでは、コード・エディタ上のテスト・メソッドのメソッド名を右クリックすれば、そのテストを実行できる。 |
テスト・メソッドを修正してからそれを実行する場合、別ウィンドウのツリーの中から求めるメソッドを探す必要はなく、いままさに修正したばかりのソース・コード上のメソッド名を右クリックすればよいのである。この手軽さ、便利さは使い始めると手放せない。
また、テストはフレームワーク経由で実行しなければならないため、デバッガでコードを追跡するような場合には、GUIテストランナーを実行ファイルとして指定する手間が発生する。これが意外と面倒な作業になる。しかし、これもTest Driven .NETを使うと容易になる。メソッド名の上で右クリックした後、[Run Test(s)]ではなく、[Test With]−[Debugger]を選ぶ。
![]() |
| デバッガを併用する場合のテスト実行 |
| テスト・メソッドをVS.NETのデバッガを使って実行する場合には、これまでGUIテストランナーを実行ファイルとして指定する必要があったが、Test Driven .NETを使うとそれがメニューから簡単に行える。 |
これでVS.NETのデバッガによってテスト・メソッドが実行される。ブレークポイントを仕掛けておけばそこで停止してくれるので、変数の値を調べたり、トレース実行したりすることができる。
さて、Test Driven .NETを使うと結果が文字で表示され、赤、緑、黄色といった色を見ることができなくなる。その結果、テスト駆動開発のレッド→グリーン→リファクタリングというリズムが直感的に分かりにくくなる。しかし、慣れればレッドやグリーンはその色を見ることが目的ではなく、それに対応する状態を得ることが重要だと実感できる。それが実感できれば、むしろ色抜きで“4 succeeded, 3 failed, 2 skipped”というようにコンパクトに結果を表示するTest Driven .NETも悪くないと思えるだろう。
| INDEX | ||
| [.NET Tools] | ||
| テスト駆動開発ツール最前線(前編) | ||
| 1.プログラム開発の効率をアップするための方法 | ||
| 2.GUIテストランナーとテストのための新機能(1) | ||
| 3.GUIテストランナーとテストのための新機能(2) | ||
| テスト駆動開発ツール最前線(後編) | ||
| 1.Test Driven .NETによる統合されたテスト | ||
| 2.Mockオブジェクトとは何か− NUnitのMockオブジェクト | ||
| 3.より高度なMockオブジェクトを実現するNMock | ||
| 「.NET Tools」 |
TechTargetジャパン
- WinRTコンポーネントの作成とmrubyのコンパイル (2013/6/19)
C#によるWinRTコンポーネント作成時の要点を説明。そしてmrubyを例に既存コード(C言語)の再利用を解説する - アプリに同梱したテキスト・ファイルを読むには? (2013/6/13)
Windowsストア・アプリやWindows Phone 8アプリでファイルを読み書きする方法とは? アプリ・パッケージに同梱したテキスト・ファイルを読み取る方法を説明する - 複数バインディングソースを画面にバインドするには? (2013/6/6)
複数のバインディング・ソースを画面にバインドする方法として簡易的な手法を解説。LayoutAwarePageクラスに用意されているDefaultViewModelプロパティを使う - オプション設定を即座にデータに反映するには? (2013/5/30)
エンド・ユーザーによる画面の変更をデータに反映させる方法を説明。さらに、その変更をほかの画面や設定ファイルに即座に反映させる方法も紹介
|
|
- WinRTコンポーネントの作成とmrubyのコンパイル
- Cassandra、Redis、memcachedに潜む脆弱性
- みんな笑顔のお祭り〜Maker Faire: Taipei 2013
- セキュリティホールは常に人の形をしている
- Adobe Edge Animate CCでマルチデバイスゲーム
- 人生と同じ? プログラムの式と演算子、制御文を学ぶ
- 第369話 フリーズ
- 802.11acと無線LAN仕様のこれから
- NBAチームのスマートタブレットの活用術は?
- システムに自動サインインする(Windows 8編)
- Eclipse ADTに代わるIDE? Android Studioの基礎
- アドビの終了したサービスは別の形で生かされる
キャリアアップ
- - PR -
イベントカレンダー
- - PR -
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
「ITmedia マーケティング」新着記事
多様化したプラットフォームの中で顧客の心をつかむには
「Adobe Digital Marketing Forum 2013」が6月13日、六本木で開催された。アドビ システ...
第9回 ソーシャルメディアで人間性豊かなコミュニケーションを展開するために
ソーシャルメディアを活用したマーケティングの成功を加速するには、どのような点に注意...
「楽しそうでカッコ良い、BtoCマーケティングがうらやましい!」――と思っているBtoBマーケターへ
「FacebookやTwitterを使ったBtoCのソーシャルマーケティングは、面白そうで楽しげでうら...





