連載:VSTSの単体テスト機能は本当に使えるのか?

第3回 VSTSで提供される注目すべき単体テスト機能

株式会社 アークウェイ 中西 庸文
Microsoft MVP 2006 - Solutions Architect)
2007/02/07
Page1 Page2 Page3 Page4

Back Issue
1
Team Systemのテスト機能の実際
2 アジャイル開発者から見たVSTSテスト機能

 前回では、アジャイル開発者の視点からVisual Studio 2005 Team System(以下、VSTS)の単体テスト機能についての考察を行った。しかし、その結果として.NETでのテスト駆動開発の定番ツールとなっているNUnitからVSTSのテスティング・フレームワークへ移行するだけの十分な根拠は得られなかった。

 そこで、VSTSでしか実現することのできない単体テスト機能についてさらに検証を行ってみることにしよう。具体的には「データ・ドリブン単体テスト」と「ASP.NET単体テスト」を取り上げる。

 今回は単体テスト機能の検証用アプリケーションとして、マイクロソフトのASP.NETリファレンス・アプリケーションであるMicrosoft .NET Pet Shop 4.0(以下、Pet Shop)を使用する。なお、Pet Shop自体のインストールについては本記事では割愛するが、インストール時に対象のデータベースとしてMicrosoft SQL Server 2005を選択している点に注意してもらいたい。

Microsoft .NET Pet Shop 4.0のスクリーンショット
Pet Shopは、インターネット上でペット販売を行うE-Commerceサイトのサンプル・アプリケーション。上記サイトからダウンロードしたインストーラからソース・コードとデータベースをインストールすることができる。

データ・ドリブン単体テスト

 単体テスト・コードを記述するに当たって、プロダクト・コードが期待どおりの動作を行っていることを確認するために、どれくらいの数のテスト・データを準備すれば十分なのだろうかと頭を悩ませることがある。最終的に大量のテスト・データが必要とされる場合には、テスト・ケースごとに数多くのテスト・メソッドを記述すればよいのだろうか、それともテスト・ケースを反復処理するようなテスト・メソッドを記述すればよいのだろうか。

 VSTSの「データ・ドリブン単体テスト」を使用すれば、問題は簡単に解決できる。データ・ドリブン単体テストでは、単体テストにおいて大量のテスト・データを使用する必要がある場合、それらのテスト・データをデータベースから取得してテストを反復実行させることができるのだ。

 それでは実際にPet Shopを使用してデータ・ドリブン単体テストの機能を検証してみよう。ここでは、カートにさまざまな商品を追加した後のアイテム(=固有商品)数量と合計金額を確認するデータ・ドリブン単体テストを作成することにする。

 まずデータ・ドリブン単体テストを行うための準備から始める。


 INDEX
  VSTSの単体テスト機能は本当に使えるのか?
  第3回 VSTSで提供される注目すべき単体テスト機能
  1.VSTSの単体テスト機能
    2.データ・ドリブン単体テストの準備
    3.データ・ドリブン単体テストの記述
    4.ASPNET単体テスト
 
インデックス・ページヘ  「VSTSの単体テスト機能は本当に使えるのか?」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間