SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio Team System 2008 Database Editionを使ってみよう

Visual Studio Team System 2008で
T-SQLの単体テストをやってみよう

Visual Studio Team System 2008 Database Editionを使ってみよう(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

新しいテストの作成

 準備が整ったところで、新しいテストを作成します。Visual Studioの[テスト]メニューから[新しいテスト]を選択します。

図5:新しいテストの作成
図5:新しいテストの作成

 新しいテストの追加ウィンドウが表示されるのでテンプレートから「データベース単体テスト」を選択します。テスト名は任意の名前を設定してください(ここではデフォルトのままにしています)。テストプロジェクトに追加のところは「Visual C# テスト プロジェクトの新規作成…」にした状態で、[OK]を選択します。

図6:新しいテストの追加ウィンドウでの設定
図6:新しいテストの追加ウィンドウでの設定

 新しいテストプロジェクトを作成する場合には、そのプロジェクトの名前の入力を求められます。任意の名前(ここではデフォルトのままにしています)に設定して、[作成]を選択してください。

図7:テストプロジェクトの名前の設定
図7:テストプロジェクトの名前の設定

 データベース単体テストを含むテストプロジェクトでは、単体テスト実行時の接続先データベースを決めるための構成を求められます。図8のようなウィンドウが表示されたら[次のデータ接続を使用して単体テストを実行]の下のドロップダウンから、接続先のデータベース(今回の場合は、ローカル端末のSQL Server 2005 Express Editionで実行されているデータベースインスタンス内にある「NorthwindDatabase」に接続するための設定)を選択するか、それがない場合には、[新しい接続]をクリックします。

図8:テストプロジェクトの構成
図8:テストプロジェクトの構成

 [新しい接続]をクリックしたときに表示されるウィンドウは普段Visual Studioでデータベースの接続を作成するときと同様の画面ですので適切な接続となるように設定を行ってください。図8の画面に戻ったら[セカンダリデータを接続して単体テストを検証]にチェックを入れ、その下のドロップダウンでは、先ほどと同様のデータベース接続を選択します。[単体テストの実行前にテストデータを生成]にもチェックを入れ、その下のドロップダウンでは、先ほど作成しておいたデータ生成計画(今回の場合は「NorthwindDatabase.dbproj - DataGenerationPlan1.dgen」)を設定して、[OK]を選択します。

図9:テストプロジェクトの構成の続き
図9:テストプロジェクトの構成の続き

 なお、ここで設定した内容は、テストプロジェクトの「app.config」ファイルに保存されます。後で変更したい場合には、ファイルの内容を直接編集してください。ここまでで、空のデータベース単体テストをもったテストプロジェクトの作成が完了しました。

 続けて、データベース単体テストの中身を作成していきます。「TestProject1」の「DatabaseUnitTest1.cs」を開くと図10のようになります。

図10:空のデータベース単体テスト
図10:空のデータベース単体テスト

 図10の上部のドロップダウンがそれぞれ「DatabaseTest1」、「テスト」になっていることを確認し、画面中央の「作成するにはここをクリックしてください」をクリックします。図11に示すように上部にT-SQLを編集するエディタ、下部にT-SQL実行結果の状態を確認するためのテスト条件が表示されます。

図11:新しいデータベース単体テストの編集
図11:新しいデータベース単体テストの編集

 ここで、T-SQLを編集するエディタ上にテストしたいSQL文を記述します。今回はテストにもならないくらい単純ですが以下のSQL文を記述します。

[リスト1]テスト対象のSQL文
SELECT * from Orders

 エディタ上での状態は図12のようになります。

図12:テスト対象のSQL文を記述したところ
図12:テスト対象のSQL文を記述したところ

 テスト対象のSQL文の作成が終わったら、次にテスト条件の設定を行います。図12の下側にあるテスト条件を見てみると、種類が結果不確定となっているテスト条件だけが設定されています。これは、テストがまだ作成し終わっていない状態であることを示すために、あらかじめ設定されているものです(C#やVBでの単体テストを作成したことがある方は、テストメソッドを作成したときに自動的に挿入されるAssert.Inconclusiveメソッド と同様の働きをするものです)。この1行を選択し、テスト条件のところにある×ボタンで削除してしまいましょう。削除できたら、テスト条件の直下にあるドロップダウンから[行数]を選択し、右側の[+]ボタンで追加します。

図13:テスト条件の設定
図13:テスト条件の設定

 種類が行数のテスト条件を追加できたら、Visual Studioのプロパティウィンドウを確認してみます。プロパティウィンドウには行数というプロパティがあるのでここを「50」に設定してください。

図14:行数条件の設定
図14:行数条件の設定

 これで、ひとまずテストの作成は完了です。早速実行してみましょう。Visual Studioの[テスト]メニューから[実行]-[現在のコンテキストのテスト]を選択します。

図15:テストの実行
図15:テストの実行

 テストの実行にはしばらく時間がかかりますが、終了すると、Visual Studioの下部にテスト結果ウィンドウが表示されます。ここで、実行したテストが成功したのか失敗したのかを確認することができます。

図16:テスト結果の確認
図16:テスト結果の確認

 テスト結果の詳細を確認したい場合には、テスト結果ウィンドウで対象のテストを右クリックして[テスト結果の詳細の表示]を選択します(Visual Studioの設定を標準から変更していない場合には、ダブルクリックでも同様に開きます)。

図17:テスト結果の詳細の確認
図17:テスト結果の詳細の確認

 これで、T-SQLをテストするための一連の手順を実行することができました。

次のページ
ストアドプロシージャの単体テストを作成しよう

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio Team System 2008 Database Editionを使ってみよう連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3665 2009/04/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング