テストの作成
DUnit の概要 への移動
メモ: DUnitX は Delphi 言語機能で、C++ ではサポートされていません。 C++ 開発者の場合は、DUnit がベストなツールとなります。 C++ can also be tested using other frameworks such as Google Test, available via GetIt パッケージ マネージャ.
2010 用のビデオ『 Delphi ユニット テスト』(英語版、Mike Rozlog解説)が閲覧できるようになりました。
ユニット テストの構造は、テストするクラスやメソッドの機能によって大きく異なります。ユニット テスト ウィザードはテスト プロジェクトのスケルトン テンプレートを生成します。これには setup と teardown メソッド、基本テスト ケースが含まれます。ユーザーはこのテンプレートを変更し、ユーザーの特定のメソッドをテストするため固有のテスト ロジックを追加できます。
次のセクションで、ユニット テスト プロジェクトとユニット テスト ケースの作成手順について説明します。これらの手順を順番に実行してください。関連するテスト ケースを作成する前にユニット テスト プロジェクトを作成する必要があります。ユニット テスト ケース ウィザードは、現在のアクティブ プロジェクトがユニット テスト プロジェクトである場合のみ利用できます。
プロジェクトを新規作成するには:
- [ファイル|新規作成|その他...]を選択します。
- [ユニット テスト]フォルダを開きます。
- [テスト プロジェクト]ギャラリー項目をダブルクリックします。[テスト プロジェクト]ウィザードが起動され、[テスト プロジェクトの詳細を指定]ページが表示されます。
- 適切な値を入力するか、デフォルト値を使用します。次の値を入力します。
- [プロジェクト名]: 新規テスト プロジェクトの名前を入力するか、デフォルトを使用します。デフォルト値は、アクティブ プロジェクトの名前に Tests が追加されたものです。アクティブ プロジェクトがない場合、デフォルト値は、UnitTest にシーケンス番号が追加されたものです。
- [場所]: テスト プロジェクトを作成するフォルダのフル パス名を入力するか、デフォルト値を使用します。デフォルト値は、アクティブ プロジェクトのフォルダにある test サブフォルダです。アクティブ プロジェクトがない場合は、デフォルト値はデフォルト プロジェクト フォルダです。参照([...])ボタンをクリックして、[フォルダの参照]ダイアログ ボックスを表示し、そこから位置を選択できます。
- [パーソナリティ]:パーソナリティ(コード言語)をドロップダウン リストから選択するか、デフォルト値を使用します。デフォルト値はアクティブ プロジェクトのパーソナリティです。
- プロジェクト グループにテスト プロジェクトを追加しない場合は、[プロジェクト グループに追加]チェック ボックスをオフにします。
- [次へ >]をクリックして続行するか、[完了]をクリックして、残りのパラメータはデフォルト値を使用します。[完了]ボタンが利用できる場合は、いつでもクリックして、デフォルト値を使用し、すぐに新規テスト プロジェクトを生成できます。利用できない場合は、[次へ >]をクリックして、[テスト フレームワーク オプションの指定]ページに進みます。
- 適切な値を入力するか、デフォルト値を使用します。次の値を入力します。
- [テスト フレームワーク]: Delphi と C++ パーソナリティの場合、DUnit フレームワークのみサポートされます。つまりこの値は変更できません。
- [テスト ランナー]: [GUI]または[Console]をドロップダウン リストから選択します。Console テスト ランナーは、コンソールに出力を表示します。GUI テスト ランナーでは、GUI ウィンドウに結果を対話的に表示します。結果は成功や失敗を示す色が付いています。
- [完了]をクリックします。[テスト プロジェクト]ウィザードによりテスト プロジェクトのテンプレートが生成されます。Delphi の場合、必要なソース参照もテスト プロジェクトのテンプレートに追加されます。この手順は省略できます。C++Builder の場合、テスト プロジェクトをテスト対象の C++ クラスと手動でリンクする必要があります。次の手順に進みます。
- C++Builder の場合のみ: 新規テスト プロジェクトをテスト対象のソースにリンクします。C++Builder の場合、テスト プロジェクトをテスト対象の C++ コードと手動でリンクする必要があります。これを実行するため次の方法のいずれかを状況に応じて使用することができます。
- C++ コードを直接テスト プロジェクトに追加する。
- .obj ファイルをテスト プロジェクトに追加する。
- .lib ファイル(静的ライブラリまたは DLL のインポート ライブラリ)をテスト プロジェクトに追加する。
- テストするクラスを実装しているヘッダー ファイルをインクルードする。詳細は、次のセクション「ファイルをテスト プロジェクトに追加するには:」を参照してください。
ファイルをテスト プロジェクトに追加するには:
- テスト プロジェクト ファイルを開き、アクティブ化します。ファイルをアクティブ化するには、[プロジェクト マネージャ]でファイルを選択し、[アクティブ化]ボタンをクリックします。
- [プロジェクト マネージャ]で、テスト プロジェクトの名前を右クリックします。プロジェクト操作のポップアップ メニューが表示されます。
- [追加...]を選択します。[プロジェクトに追加]ダイアログが表示され、ここからテスト プロジェクトにインクルードするファイルを選択できます。
- 追加するファイルを選択し、[開く]をクリックします。選択ファイルがテスト プロジェクトに追加されます。
テスト ケースを作成するには:
- テストするクラスを含むファイルの[コード]タブをクリックします。これで、コードエディタでファイルがアクティブになります。
- [ファイル|新規作成|その他...]を選択します。
- [ユニット テスト]フォルダを開きます。
- [テスト ケース]ギャラリー項目をダブルクリックします。[テスト ケース]ウィザードが起動され、[テストするメソッドを選択]ページが表示されます。
- テストするクラスを含むソース ファイルの名前を入力します。参照([...])ボタンをクリックして、[開く]ダイアログ ボックスを表示し、そこからファイルを選択できます。
- テストを作成する対象のメソッドとクラスを選択します。[利用できるクラスとメソッド]リストで、項目の隣にあるチェック ボックスをオンまたはオフにします。デフォルトでは、検出されたクラスとメンバがすべて選択されます。リストにあるメソッドの選択を個別に解除できます。ウィザードは、チェック ボックスがオン(選択された)のメソッドのテスト テンプレートだけを生成します。クラスの選択しない場合、メソッドが選択されている場合も、ウィザードはクラスおよびそのメソッドを無視します。クラスが選択されているが、そのクラス内メソッドが何も選択されていない場合、ウィザードはクラスに対するテスト ケースを作成しますが、そのクラスのテスト メソッドを生成することはありません。
- [次へ >]をクリックして続行するか、[完了]をクリックして、残りのパラメータはデフォルト値を使用します。[完了]ボタンが利用できる場合は、いつでもクリックして、デフォルト値を使用し、すぐに新規テスト ケースを生成できます。利用できない場合は、[次へ >]をクリックして、[テスト ケースの詳細を指定]ページに進みます。
- 適切な値を入力するか、デフォルト値を使用します。
- [テスト プロジェクト]: テスト プロジェクトをドロップダウン リストから選択します。デフォルト値はアクティブ テスト プロジェクトです。[テスト プロジェクト]ウィザードを使用してテスト プロジェクトを作成したばかりの場合は、新規テスト プロジェクトがデフォルトになります。
- [ファイル名]: 作成しているテスト ケースのファイル名を入力するか、デフォルト値を使用します。デフォルト値は、テスト対象のソース ファイル名の先頭に Test が付いたものです。
- [テスト フレームワーク]: Delphi for Win32 と C++ パーソナリティの場合、DUnit フレームワークのみサポートされます。つまりこの値は変更できません。
- [基底クラス]: 基底クラスをドロップダウン リストから選択するか、デフォルト値を使用します。デフォルト値は、TTestCase で、これはデフォルトの基底 TestCase クラスです。多くの場合、デフォルトを使用できます。ただし、ユーザーが作成したカスタム TTestCase クラスを指定できます。さらに、オブジェクトの階層構造をテストしている場合、テスト対象のオブジェクトのベース オブジェクトにある TestCase クラスから、新規テスト ケースを派生させることができます。これにより派生クラスでは、対象クラスの基本タイプ用に作成されたテストを継承できます。
- [完了]をクリックします。このウィザードでは、ユーザーが指定した名前のテスト ケース ファイルを生成します。
テスト ケースを作成するには:
- 必要な場合、テスト ケースの(各)テンプレートにある SetUp と TearDown メソッドにコードを追加します。
- テスト メソッドにアサートを追加します。
GUI テスト ランナーでテスト ケースを実行するには:
- 実行するクラスを含むファイルをアクティブ化します。[プロジェクト マネージャ]でファイルを選択してから、[アクティブ化]ボタンをクリックします。
- [実行|実行]を選択します。アプリケーションを実行すると、すぐに GUI テスト ランナーが起動します。
- [tests]リストから、1 つ以上のテストを選択します。
- [実行]ボタンをクリックします。テストの結果が[テスト結果]ウィンドウに表示されます。成功したテストは緑色のバーで強調表示され、失敗したテストは赤色で強調表示されます。省略されたテストは黄色で強調表示されます。
- テストの結果を確認します。
- バグを修正し、テストを再度実行します。
関連項目
- ユニット テストの概要
- DUnit の概要
- ビデオ『Delphi ユニット テスト』(英語版、Mike Rozlog解説)