新しいテストの作成
準備が整ったところで、新しいテストを作成します。Visual Studioの[テスト]メニューから[新しいテスト]を選択します。
新しいテストの追加ウィンドウが表示されるのでテンプレートから「データベース単体テスト」を選択します。テスト名は任意の名前を設定してください(ここではデフォルトのままにしています)。テストプロジェクトに追加のところは「Visual C# テスト プロジェクトの新規作成…」にした状態で、[OK]を選択します。
新しいテストプロジェクトを作成する場合には、そのプロジェクトの名前の入力を求められます。任意の名前(ここではデフォルトのままにしています)に設定して、[作成]を選択してください。
データベース単体テストを含むテストプロジェクトでは、単体テスト実行時の接続先データベースを決めるための構成を求められます。図8のようなウィンドウが表示されたら[次のデータ接続を使用して単体テストを実行]の下のドロップダウンから、接続先のデータベース(今回の場合は、ローカル端末のSQL Server 2005 Express Editionで実行されているデータベースインスタンス内にある「NorthwindDatabase」に接続するための設定)を選択するか、それがない場合には、[新しい接続]をクリックします。
[新しい接続]をクリックしたときに表示されるウィンドウは普段Visual Studioでデータベースの接続を作成するときと同様の画面ですので適切な接続となるように設定を行ってください。図8の画面に戻ったら[セカンダリデータを接続して単体テストを検証]にチェックを入れ、その下のドロップダウンでは、先ほどと同様のデータベース接続を選択します。[単体テストの実行前にテストデータを生成]にもチェックを入れ、その下のドロップダウンでは、先ほど作成しておいたデータ生成計画(今回の場合は「NorthwindDatabase.dbproj - DataGenerationPlan1.dgen」)を設定して、[OK]を選択します。
なお、ここで設定した内容は、テストプロジェクトの「app.config」ファイルに保存されます。後で変更したい場合には、ファイルの内容を直接編集してください。ここまでで、空のデータベース単体テストをもったテストプロジェクトの作成が完了しました。
続けて、データベース単体テストの中身を作成していきます。「TestProject1」の「DatabaseUnitTest1.cs」を開くと図10のようになります。
図10の上部のドロップダウンがそれぞれ「DatabaseTest1」、「テスト」になっていることを確認し、画面中央の「作成するにはここをクリックしてください」をクリックします。図11に示すように上部にT-SQLを編集するエディタ、下部にT-SQL実行結果の状態を確認するためのテスト条件が表示されます。
ここで、T-SQLを編集するエディタ上にテストしたいSQL文を記述します。今回はテストにもならないくらい単純ですが以下のSQL文を記述します。
SELECT * from Orders
エディタ上での状態は図12のようになります。
テスト対象のSQL文の作成が終わったら、次にテスト条件の設定を行います。図12の下側にあるテスト条件を見てみると、種類が結果不確定となっているテスト条件だけが設定されています。これは、テストがまだ作成し終わっていない状態であることを示すために、あらかじめ設定されているものです(C#やVBでの単体テストを作成したことがある方は、テストメソッドを作成したときに自動的に挿入されるAssert.Inconclusive
メソッド と同様の働きをするものです)。この1行を選択し、テスト条件のところにある×ボタンで削除してしまいましょう。削除できたら、テスト条件の直下にあるドロップダウンから[行数]を選択し、右側の[+]ボタンで追加します。
種類が行数のテスト条件を追加できたら、Visual Studioのプロパティウィンドウを確認してみます。プロパティウィンドウには行数というプロパティがあるのでここを「50」に設定してください。
これで、ひとまずテストの作成は完了です。早速実行してみましょう。Visual Studioの[テスト]メニューから[実行]-[現在のコンテキストのテスト]を選択します。
テストの実行にはしばらく時間がかかりますが、終了すると、Visual Studioの下部にテスト結果ウィンドウが表示されます。ここで、実行したテストが成功したのか失敗したのかを確認することができます。
テスト結果の詳細を確認したい場合には、テスト結果ウィンドウで対象のテストを右クリックして[テスト結果の詳細の表示]を選択します(Visual Studioの設定を標準から変更していない場合には、ダブルクリックでも同様に開きます)。
これで、T-SQLをテストするための一連の手順を実行することができました。