BOOK Preview

Microsoft Visual Studio 2005による
Webアプリケーションテスト技法

第4章 4.3 データアクセスクラスに対する単体機能テスト

マイクロソフトプレスの書籍紹介ページ
日経BPソフトプレスの書籍紹介ページ
書籍情報(書籍目次)のページ
2007/04/10
Page1 Page2 Page3

4.3.3 テストの初期化処理と終了処理

 ここまでの解説では、Visual Studio 2005およびSQL Server 2005のファイルアタッチデータベース機能を活用した便利なテスト手法を解説してきた。しかし、場合によってはOracleやSQL Server 2000などを利用しているため、これらの手法が利用できないこともある。このようなケースでは、テストの初期化処理の機能を活用して、テスト開始時にテスト用データベースの初期化などを行うとよい*100。リスト4-12にこれらを行うためのメソッドシグネチャを示す*101

*100 コードサンプルからわかるように終了処理も記述することができるが、終了処理はデバッグモードでテストを実行する場合には呼び出されない。このため、基本的には終了処理は使わないようにした方がよいだろう。
 
*101 この機能を利用する場合には、シグネチャ(パラメータ)について完全に合致させる必要がある。シグネチャが完全に一致しない場合、テストランタイムはこれらの処理を認識しない。
 
■ C#の場合

[AssemblyInitialize()]
public static void AssemblyInitialize(TestContext myTestContext) {
  // アセンブリがロードされたタイミングで一度だけ呼び出される
}

[ClassInitialize()]
public static void ClassInitialize(TestContext myTestContext) {
  // 当該クラスが呼び出されたタイミングで一度だけ呼び出される
}

[TestInitialize()]
public void TestInitialize() {
  // 各TestMethod の実行前にそれぞれ呼び出される
}
■ VBの場合

<AssemblyInitialize()> _
Public Shared Sub AssemblyInitialize(ByVal myTestContext As TestContext)
  ' アセンブリがロードされたタイミングで一度だけ呼び出される
End Sub

<ClassInitialize()> _
Public Shared Sub ClassInitialize(ByVal myTestContext As TestContext)
  ' 当該クラスが呼び出されたタイミングで一度だけ呼び出される
End Sub

<TestInitialize()> _
Public Sub TestInitialize()
  ' 各TestMethod の実行前にそれぞれ呼び出される
End Sub
リスト 4-12 テストの初期化処理と終了処理

3.1.4 データアクセスクラスに対する単体機能テスト ― まとめ

 ここまでの解説の要点をまとめると、以下のようになる。

  • データアクセスクラスの単体機能テストでは、ファイルアタッチデータベース機能を活用すると便利である。

    • テスト用データが含まれたファイルアタッチ用データベースファイルをビジネスロジックプロジェクト側に配置しておき、これを開発とテストの両方で利用する。

  • テストコードを記述する際は、自動生成されたコードを検証するようなテストケースは除外して考える。

    • 自分が記述したSQL文が期待通りに動作するか否かを検証するようなテストケースを中心に記述していく。

  • 更新系データアクセス処理をテストする場合は、自動トランザクション機能を活用する。

    • テストメソッドがどの順番で実行されても構わないように、各テストメソッド終了時にデータベースを元に戻す。

    • System.Transactionsの機能を活用したテストコードを記述すると、これを簡単に行うことができる。

 データアクセスクラスに対する単体機能テストの解説は以上である。引き続き、ビジネスロジッククラスに対する単体機能テストの記述方法について解説しよう。End of Article

 

 INDEX
  Microsoft Visual Studio 2005によるWebアプリケーションテスト技法
  第4章 4.3 データアクセスクラスに対する単体機能テスト
    1. テスト用データベースの準備方法
    2. テストコードの記述方法
  3. テストの初期化処理と終了処理
 
インデックス・ページヘ  「BOOK Preview」


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 記事ランキング

本日 月間