ファイル スコープ モードでテストを実行する場合、スタブを生成してファイルをプロジェクト中の他のコードから分離する必要があります。この演習では、ATM.cxx をプロジェクトの他のすべてのファイルから分離して単体テストを実行します。
ファイル スコープとプロジェクト スコープのスタブ生成を比較する
- プロジェクト ツリーで Stubs ディレクトリを右クリックし、[削除] をクリックします。
- 演習 4 で説明している [Generate Stubs (File Scope)] および [Generate Stubs (Project Scope)] をまだ作成していない場合、これらのテスト コンフィギュレーションを作成します。
- プロジェクト ツリーで ATM.cxx ファイルを選択し、[Generate Stubs (File Scope)] テスト コンフィギュレーションを実行します。
- [スタブ] ビューを表示します。
- テスト スコープの中の機能に対してオリジナル定義が使用されます。
テスト スコープの外の機能には自動スタブが使用されます。
- 比較するために、プロジェクト ツリーで Stubs ディレクトリを右クリックし、[削除] をクリックします。そして ATM.cxx を選択して [Generate Stubs (Project Scope)] テスト コンフィギュレーションを実行します。
- [スタブ] ビューを開きます。
- 必要なすべての機能にオリジナル定義が使用されます。
- スタブは生成されません。
- 次の演習に進む前に、ステップ 1-3 を繰り返して ATM.cxx のスタブを生成します。
[Run Unit Tests (File Scope)] テスト コンフィギュレーションを作成して実行する
- [テスト コンフィギュレーション] ダイアログを開き、[ユーザー定義] > [Run Unit Tests (Project Scope)] テスト コンフィギュレーションを複製します。
- [実行] > [シンボル] タブを開き、[プロジェクト内の他のファイルのシンボルを使用] をオフにします。
- テスト コンフィギュレーションの名前を [Run Unit Tests (File Scope)] に変更します。
- 変更を適用して [テスト コンフィギュレーション] ダイアログを閉じます。
- 複数のソース ファイルがあるプロジェクトでは、単一のファイル、ファイルのセット、またはプロジェクト全体を選択してファイル スコープのテストを実行できます。
- 選択されたスコープ外のすべての機能をスタブ化する必要があります。
- テスト スコープとして ATM.cxx を選択します。
- [Parasoft] メニューの [テストの実行] > [ユーザー定義] > [Run Unit Tests (File Scope)] をクリックします。
- [テスト進捗] タブを参照し、6 個の単体テストを持つ 1 つのファイルだけがテストされたことを確認します。
ファイル スコープの単体テストをソース ファイルとヘッダー ファイルに対して実行する
ヘッダー ファイルを単体テストのスコープの一部とする場合、ヘッダー ファイルに含まれる機能のテスト ケースを生成する必要があります。必要に応じてスタブを生成し、単体テストを実行します。
プロジェクト ツリーで ATM.cxx ファイルを選択し、Ctrl キーを押しながらincludeをクリックします。
- [Parasoft] メニューの [テストの実行] > [ユーザー定義] > [Generate Unit Tests - 2 tests] を実行して Account.hxx と BaseDisplay.hxx のテスト スイートを作成します。
ATM.cxx を選択し、Ctrl キーを押しながらIncludeをクリックしてテスト スコープを選択します。ATM.cxx、Account.hxx、BaseDisplay.hxx が テストスコープとなります。
- [Parasoft] メニューの [テストの実行] > [ユーザー定義] > [Generate Stubs (File Scope)] をクリックしてファイル スコープのスタブ生成を実行します。
ATM.cxx を選択し、Ctr キーを押しながらInclude
をクリックしてテスト スコープを選択します。
- ファイル スコープのテスト コンフィギュレーションを使用して単体テストを実行するために、[Parasoft] メニューの [テストの実行] > [ユーザー定義] > [Run Unit Tests (File Scope)] をクリックします。
[テスト進捗] タブで 21 個のテスト ケースが実行されたことを確認します。実行結果については後の演習で扱います。