連載:VSTSの単体テスト機能は本当に使えるのか?第3回 VSTSで提供される注目すべき単体テスト機能株式会社 アークウェイ 中西 庸文(Microsoft MVP 2006 - Solutions Architect) 2007/02/07 |
|
|
■テスト・プロジェクトの追加
Pet Shopをインストール後、Pet Shopソリューション(C:\Program Files\Microsoft\.NET Pet Shop 4.0\PetShop.sln)をVisual Studio 2005(以下、VS 2005)で開き、[新しいプロジェクトの追加]ダイアログで、「プロジェクトの種類」から「Visual C#」−「テスト」を選択する。テンプレートとして「テスト プロジェクト」が選択された状態でプロジェクト名には「PetShop.Tests」と入力し、ソリューションにテスト・プロジェクトを追加する。
テスト・プロジェクトの追加 |
VS 2005のメニュー・バーから[ファイル]−[追加]−[新しいプロジェクト]を選択すると、このような[新しいプロジェクトの追加]ダイアログが表示される。 |
追加されたテスト・プロジェクトにはいくつかのテスト用テンプレートがデフォルトで含まれるが、以下のファイルは今回は使用しないので削除する。
- ManualTest1.mht(手動テスト用のテンプレート)
- UnitTest1.cs(単体テスト用のテンプレート)
■参照の追加
次に、テスト・プロジェクトからテスト対象のクラスを含むプロジェクトを参照できるように、テスト・プロジェクトの参照設定の追加を行う。
VS 2005のソリューション・エクスプローラ上で、「PetShop.Tests」プロジェクトを右クリックしてコンテキスト・メニューを表示し、[参照の追加]を選択する。[参照の追加]ダイアログ上の[プロジェクト]タブを選択し、下記のプロジェクト参照を追加する。
- BLLプロジェクト(Cartクラス(=ショッピングカート・クラス)を含むプロジェクト)
- Modelプロジェクト(CartItemInfoクラス(=ショッピングカートに保持されるアイテム・クラス)を含むプロジェクト)
プロジェクト参照の追加 |
VS 2005のソリューション・エクスプローラ上で、対象のプロジェクトを右クリックしてコンテキスト・メニューを表示し、そこから[参照の追加]を選択する。これにより、参照を追加するためのダイアログが表示される。今回のテスト対象となるクラスを含むPet Shopのプロジェクト「BLL」と「Model」を選択する。 |
同じく[参照の追加]ダイアログ上の[.NET]タブを選択し、「System.Data.dll」への参照も追加する。
System.Data.dll参照の追加 |
データ・ドリブン単体テストではデータ・アクセスが必要なため、System.Data.dllへの参照の追加が必要。 |
■データ・ドリブン単体テストで使用するデータベースおよびテーブルの作成
データ・ドリブン単体テストを利用するには、テスト用データを格納するためのテスト用データベースとテーブルが必要となるので、これらを作成する。
VS 2005のサーバ・エクスプローラ上で、「データ接続」を右クリックしてコンテキスト・メニューを表示し、[新しい SQL Server データベースの作成]を選択する。Pet Shopインストール時に指定したデータベースのあるサーバ名を選択し、新しいデータベース名に「MSPetShop4UnitTest」と入力し、新しいSQL Serverデータベースを作成する。
テスト用データベースの作成 |
VS 2005のサーバ・エクスプローラ上で「データ接続」を右クリックしてコンテキスト・メニューを表示し、そこから[新しい SQL Server データベースの作成]を選択する。これにより、新しいSQL Serverデータベースを作成するためのダイアログが表示される。 |
VS 2005のサーバ・エクスプローラ上で「MSPetShop4UnitTest」データベースの「テーブル」を右クリックしてコンテキスト・メニューを表示し、[新しいテーブルの追加]を選択する。デザイナ上で下記のテーブル仕様に従ってテーブルを作成し、テーブル名を「AddCartTest」として保存する。
列名 | 型 | Null許容 | プライマリ・キー | 説明 |
Id | int |
×
|
○
|
テスト・データのID |
Count | int |
×
|
商品追加後のカートのアイテム数量 | |
Total | decimal(10,2) |
×
|
商品追加後のカートの合計金額 | |
ItemId | nvarchar(50) |
×
|
追加する商品の商品ID | |
ProductId | nvarchar(50) |
×
|
追加する商品のプロダクトID | |
Name | nvarchar(50) |
×
|
追加する商品の商品名 | |
Price | decimal(10,2) |
×
|
追加する商品の商品単価 | |
Quantity | int |
×
|
追加する商品の商品数量 | |
AddCartTestテーブル仕様 |
参考までに、AddCartTestテーブル作成のためのSQLスクリプトを以下に示す。
|
|
AddCartTest SQLスクリプト |
■テスト・データの作成
VS 2005のサーバ・エクスプローラ上で「AddCartTest」テーブルを右クリックしてコンテキスト・メニューを表示し、[テーブル データの表示]を選択する。テーブルが開いたら以下の表に示すようなさまざまなテスト・データを入力する。
Id | Count | Total | ItemId | ProductId | Name | Price | Quantity |
1
|
1
|
17.00
|
EST-1 | FI-01 | Happy |
17.00
|
1
|
2
|
1
|
38.00
|
EST-10 | FI-04 | Tap Dance |
19.00
|
2
|
3
|
1
|
60.00
|
EST-11 | FI-04 | Ballet |
20.00
|
3
|
4
|
1
|
76.00
|
EST-12 | FI-04 | Ballroom |
19.00
|
4
|
5
|
1
|
85.00
|
EST-13 | FI-05 | Long Arms |
17.00
|
5
|
AddCartTestテーブルに入力するテスト・データ |
以上で、データ・ドリブン単体テストを行うための準備は完了した。
それでは、データ・ドリブン単体テストを記述していこう。
INDEX | ||
VSTSの単体テスト機能は本当に使えるのか? | ||
第3回 VSTSで提供される注目すべき単体テスト機能 | ||
1.VSTSの単体テスト機能 | ||
2.データ・ドリブン単体テストの準備 | ||
3.データ・ドリブン単体テストの記述 | ||
4.ASPNET単体テスト | ||
「VSTSの単体テスト機能は本当に使えるのか?」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|