単体テストを使用したデータベース コードの検証
データベース単体テストを使用すると、データベースのベースラインとなる状態を設定した後、データベース オブジェクトに対してそれ以降行う変更を検証できます。 ベースライン状態を確立する前に、まずデータベース プロジェクトを作成する必要があります。 テスト プロジェクトを作成し、データベース オブジェクトを実行する一連の Transact-SQL テストを記述します。 これらのテストを使用して、バージョン管理にオブジェクトをチェックインする前に、動作が正しいかどうかを分離開発環境で検証できます。
データベース オブジェクトに対する変更を検証するテストを作成できます。 さらに、データベースの関数、トリガー、およびストアド プロシージャをテストする Transact-SQL コードのスタブを自動的に生成できます。
注意
データベース単体テストは、データベース プロジェクトを開かずに作成および実行できます。 ただし、プロジェクトの特定のデータベース オブジェクトをテストするテスト スクリプトを自動生成する場合は、テスト対象のオブジェクトを含むデータベース プロジェクトを開いておく必要があります。
自分またはチーム メンバーがデータベース スキーマを変更した場合、これらのテストを使用し、変更によって既存の機能が使用できなくなったかどうかを検証できます。 ソフトウェア開発者が作成するソフトウェア単体テストを補完するデータベース単体テストを作成します。 この両方のテストを実行して、アプリケーション全体の動作を検証する必要があります。
単体テストで、成功が予想されるときにプロシージャが成功し、失敗が予想されるときにプロシージャが失敗することを検証できます。 適切なエラーが発生することを確認するテストは、否定的なテストとも呼ばれます。
重要
Visual Studio Premium および Visual Studio Ultimate で、データベース単体テストを作成、変更、および実行できます。 Visual Studio 2010 Professional では、デザイナーでデータベース単体テストは実行できますが、テストの作成または変更は実行できません。
一般的なタスク
次の表に、このシナリオをサポートする一般的なタスクの説明と、それらのタスクを正常に完了する方法の詳細へのリンクを示します。
一般的なタスク |
関連する参照先 |
---|---|
実習を行う: 機能紹介のチュートリアルを実施することで、単純なデータベース単体テストの作成方法と実行方法を理解することができます。 このチュートリアルでは、否定的なデータベース単体テストの例を紹介します。 |
|
データベースにテスト データを設定する: データベース オブジェクトに対するテストを実行する前に、データベースのデータが必要です。 テスト データを作成する場合に最も一般的なのは、1 つまたは複数のデータ ジェネレーターを使用する方法です。 また、配置後スクリプトの参照データをデータベースに設定することや、あるデータベースのデータを別のデータベースのデータと同期することもできます。 |
|
データベース単体テストを定義する: 使用するプロジェクトでデータベース単体テストを作成する必要があります。 そのプロジェクトの設定を構成し、テストごとに 1 つまたは複数のテスト条件を定義します。 |
|
データベース単体テストを実行する: 1 つまたは複数の単体テストを定義したら、テストを実行し、問題をデバッグし、テスト結果を検証します。 |
|
テストのグループを管理する: 通常は同時に実行されるテストの場合、テストをグループ化することもできます。 新しいテストのグループとは別に、従来のテスト リストもサポートされますが、テスト リストの場合はテスト カテゴリを考慮する必要があります。 たとえば、特定のスキーマのトリガーまたはすべてのオブジェクトについて、テスト カテゴリを作成します。 |
|
テスト プロジェクトとテストをバージョン管理にチェックインする: テストを実行し、適切に動作するかどうかを検証したら、テスト プロジェクトと関連するすべてのファイルをバージョン管理にチェックインします。これで、チーム メンバーがテストを実行できるようになります。 |
|
カスタムのテスト条件を定義する: 既定のテスト条件では対応できない動作をテストする必要がある場合、カスタムのテスト条件を作成できます。 カスタムのテスト条件は、その新しい条件を使用するテストを実行するチーム メンバー全員に配布する必要があります。 |
|
既存の単体テストを更新する: 以前のバージョンの Visual Studio で作成した単体テストがある場合、今回のリリースで適切にビルドおよび実行するには、アップグレードする必要があります。
メモ
以前のバージョンの Visual Studio のデータベース プロジェクトとデータベース単体テスト プロジェクトの両方を含むソリューションを開く場合、そのプロジェクトをアップグレードするように求めるメッセージが表示されます。データベース単体テスト プロジェクトのみを含むソリューションを開く場合、そのプロジェクトを手動でアップグレードする必要があります。
|
|
問題をトラブルシューティングする: データベース単体テストに関する一般的な問題をトラブルシューティングする方法についてさらに詳しく学習できます。 |
関連するシナリオ
データベースのチーム開発の開始
データベースをテストする前に、データベースのオブジェクトと設定のオフライン形式を含むデータベース プロジェクトを作成する必要があります。データベース コードの記述と変更
データベースのベースラインの状態を確立したら、データベース オブジェクトの定義や更新などの反復開発タスクを実行します。 変更を検証した後は、変更をチームで共有できます。データベースのビルドとステージング環境または稼動環境への配置
分離開発環境およびテスト環境ですべてのデータベース コードを実装およびテストした後は、データベース管理者 (DBA) がその変更をステージング環境および運用環境に配置します。