ユニット テストの概要
DUnit の概要 への移動
New for 2010! ビデオ: Delphi ユニット テスト(by Mike Rozlog)
RAD Studio には、オープンソース テスト フレームワーク DUnit が統合されており、ユーザーのアプリケーションに対して自動化されたテスト ケースを作成して実行できます。この DUnit フレームワークは、Delphi と C++ の両方に提供されています。このフレームワークにより、アプリケーション内のクラスとメソッドのテストを作成するプロセスが簡単になります。ユニット テストをリファクタリングとともに使用することで、アプリケーションの安定性を向上できます。小さな変更を加えるたびにコード全体で標準のテスト一式を実行すれば、開発サイクルの初期段階で発生する問題を検出しやすくなります。
DUnit テスト フレームワークは JUnit テスト フレームワークに基づいたもので、多くの機能を共有しています。
このトピックでは、以下の情報について説明します。
- インストール内容
- テスト プロジェクト
- テスト ケース
- テスト フィクスチャ
DUnit のインストール
DUnit 機能をインストールするには、次の手順に従います:
- [ツール|プラットフォームの管理]を選択し、機能マネージャを開きます。
- [追加オプション]タブで、DUnit テスト フレームワーク機能にチェックをつけて、それを RAD Studio インストール機能に追加します。
- [適用]を選択し、選択した変更を適用します。
変更が適用されたら、機能マネージャに[操作完了]の画面が表示されます。
インストール内容
デフォルトでは、DUnit フレームワークは RAD Studio の完全インストールか、個別のパーソナリティ(Delphi または C++Builder)のいずれかのインストールでインストールされます。
DUnit
Delphi および C++Builder の場合、DUnit フレームワークは、RAD Studio インストーラにより自動的にインストールされます。多くの DUnit リソースは、インストール ディレクトリのルートにある \source\DUnit ディレクトリに置かれます。リソースには、ソース ファイル、ドキュメントやテストのサンプルがあります。
C++Builder の場合、次の C++ ヘッダーとライブラリ ファイルが、C++ テスト プロジェクトとして、使用するために提供されます。
- GUITestRunner.hpp
- XMLTestRunner.hpp
- TextTestRunner.hpp
- TestFramework.hpp
- DUnitMainForm.hpp
- DUnitAbout.hppdir
- dunitrtl.lib
メモ: これらのファイルは、標準 DUnit 配布の一部ではありません。これらのファイルはプリビルドされ、役に立つように C++Builder に含まれています。
一般に DUnit を使用するとき、少なくとも 1 つのテスト ケースと(複数の)テスト フィクスチャを含めます。通常のテスト ケースには、テストするクラスの機能を検証するためのアサーション文が 1 つ以上含まれます。
DUnit は、Mozilla Public License Version 1.1 下でライセンス許可されています。
テスト プロジェクト
テスト プロジェクトは 1 つ以上のテスト ケースをカプセル化し、IDE の[プロジェクト マネージャ]で 1 つのノードとして表されます。RAD Studio には、[テスト プロジェクト]ウィザードが用意されており、ユーザーはこのウィザードで基本テスト プロジェクトを作成できます。テスト プロジェクトを作成してコード プロジェクトに関連付けたら、テスト ケースを作成し、そのテスト プロジェクトにテスト ケースを追加できます。
テスト ケース
普通のユニット テスト プロジェクトでは、テスト対象の各クラスには、対応するテスト クラスがあります。ただし、これは必須ではありません。このテスト クラスは、テスト ケースとも呼ばれます。ユーザーが使用しているフレームワークの種類により、テスト クラスは、特定テスト ケースの基底クラスから派生したクラスである場合もあります。一般に、テスト ケースには、テスト対象のクラスにあるメソッドの 1 つに対応する(複数)メソッドのセットがあります。1 つのテスト プロジェクトに複数のテスト ケースを作成できます。各テストをテスト ケースに、各テスト ケースをテスト プロジェクトにそれぞれ組み合わせてグループ化できることで、テスト ケースは、print 文を使用したりデバッガ式を評価するなどの単純な形式のテストとはまったく異なる機能を持ちます。各テスト ケースとテスト プロジェクトは、再利用、再実行でき、バッチ ファイル、ビルド スクリプト、別のタイプのテスト システムを利用して自動実行できます。
一般にソース ファイル プロジェクトとは異なるプロジェクトにテストを作成することをお勧めします。プロジェクトを分けると、テストを実稼働アプリケーションから削除するプロセスが不要になります。RAD Studio には、基本テスト ケース(必要に応じてカスタマイズできる)の作成を支援する[テスト ケース]ウィザードが用意されています。
テスト フィクスチャ
テスト フィクスチャとは、論理的に関連する機能をテストする複数のテスト ケースの組み合わせを指します。テスト フィクスチャはテスト ケース内で定義できます。通常は、SetUp セクションと TearDown セクションでオブジェクトをインスタンス化し、変数を初期化し、データベース接続を設定し、メンテナンス作業を実行します。同じオブジェクトに対して実行するテストであれば、任意のテスト フィクスチャに複数のテストを組み込むことができます。
関連項目
- DUnit の概要
- テストの作成
- ビデオ『Delphi ユニット テスト』(英語版、Mike Rozlog解説)