このセクションでは、自動生成テスト ケースを参照する方法について説明します。
このセクションの内容 :
自動生成テスト ケースはテスト スイート ファイルに保存されます。デフォルト設定では、C++test は1 つのファイルにつき 1 つのテスト スイートを生成します。設定を変えれば、1 つの関数につき 1 つのテスト スイートを生成することもできます。 詳細については 「[テスト スイート] タブ」および 「生成オプションのカスタマイズ」を参照してください。
自動生成されたテスト ケースを参照するには、次の操作を行います。
テスト ケースはテスト スイート中に格納されます。
テスト対象のファイルに後で関数を追加した場合、更新されたファイルにテスト生成が実行されて、新しいテスト ケースが元のテスト スイート ファイルに追加されます。
各テスト スイートは、次の 2 つのマクロから開始します。
CPPTEST_CONTEXT:
テスト スイートがテストするファイルを指定します。1 つのソース ファイルだけを指定できます。コンテキストの指定がない場合、プロジェクトが実行されるたびにテスト スイートが実行されます。 CPPTEST_TEST_SUITE_INCLUDED_TO:
このテスト スイートがインクルード テスト スイートであることを指定するほか、テスト用実行モジュールをビルドするときにこのテスト スイート ソースをインクルードするファイルを指定します。他のテスト スイート ファイルをインクルードする場合は #include ディレクティブを使用します。 これらのマクロで指定するファイルは、テスト対象ファイルのファイル名と一致しなければなりません。テスト対象ファイルのファイル名を変更した場合、マクロ側のファイル名も合わせて変更する必要があります。
これらのマクロでは相対パスを使用できます。相対パスは "./" または "../" で開始しなければなりません。
次の事後条件マクロは、テストの実行中に変数またはクラス メンバーが保持した値をレポートするために使用されます。
これらのマクロの結果 ( レポートされたすべてのアサーション値) は [品質タスク] ビューに表示されます。事後条件がレポートされたテスト ケースは、回帰テストで使用するために自動的に「検証済み」にできます。検証済みにすることによって、 *_POST_CONDITION_* マクロはアサーションに変換され、今後のテストで期待値 (検証済みの値) が出力されなかった場合、このアサーションは失敗します。この機能は特に、レガシー コードをベースにした回帰テストを自動生成するのに役立ちます。テスト ケースの検証の詳細については 「回帰テストと例外検出のためのテスト ケースの生成」を参照してください。
アサーション マクロは、ユーザーが事後条件を検証したときにテスト ケースに追加されます。
テストのニーズに合わせて他のマクロを追加することも可能です。テスト ケースで使用できるマクロの一覧については 「C++test API ドキュメント」を参照してください。
自動生成テスト ケースは、特別な関数を持つことがあります。たとえば、最大値や最小値にアクセスする関数などです。
C++test ランタイム ライブラリには、異なる数値を使ってテスト ケースを生成するために、整数型および浮動小数点型の最大値/最小値を返す関数が用意されています。次の表中のすべての関数はユーザー定義テスト ケースで使用できます。
関数 | 目的 |
---|---|
char cpptestLimitsGetMaxChar(void); | char 型の最大値を返します。 |
char cpptestLimitsGetMinChar(void); | char 型の最小値を返します。 |
signed char cpptestLimitsGetMaxSigned Char(void); | signed char 型の最大値を返します。 |
signed char cpptestLimitsGetMinSigned Char(void); | signed char 型の最小値を返します。 |
unsigned char cpptestLimitsGetMaxUnsigned Char(void); | unsigned char 型の最大値を返します。 |
short cpptestLimitsGetMaxShort(void); | short 型の最大値を返します。 |
short cpptestLimitsGetMinShort(void); | short 型の最小値を返します。 |
unsigned short cpptestLimitsGetMax UnsignedShort(void); | unsigned short 型の最大値を返します。 |
int cpptestLimitsGetMaxInt(void); | int 型の最大値を返します。 |
int cpptestLimitsGetMinInt(void); | int 型の最小値を返します。 |
unsigned int cpptestLimitsGetMaxUnsigned Int(void); | unsigned int 型の最大値を返します。 |
long cpptestLimitsGetMaxLong(void); | long 型の最大値を返します。 |
long cpptestLimitsGetMinLong(void); | long 型の最小値を返します。 |
unsigned long cpptestLimitsGetMaxUnsigned Long(void); | unsigned long 型の最大値を返します。 |
float cpptestLimitsGetMaxPosFloat(void); | float 型の正の最大値を返します。 |
float cpptestLimitsGetMinNegFloat(void); | float 型の負の最小値を返します。 |
float cpptestLimitsGetMaxNegFloat(void); | float 型の負の最大値を返します。 |
float cpptestLimitsGetMinPosFloat(void); | float 型の正の最小値を返します。 |
double cpptestLimitsGetMaxPosDouble(void); | double 型の正の最大値を返します。 |
double cpptestLimitsGetMinNegDouble(void); | double 型の負の最小値を返します。 |
double cpptestLimitsGetMaxNegDouble(void); | double 型の負の最大値を返します。 |
double cpptestLimitsGetMinPosDouble(void); | double 型の正の最小値を返します。 |
long double cpptestLimitsGetMaxPosLong Double(void); | long double 型の正の最大値を返します。 |
long double cpptestLimitsGetMinNegLong Double(void); | long double 型の負の最小値を返します。 |
long double cpptestLimitsGetMaxNegLong Double(void); | long double 型の負の最大値を返します。 |
long double cpptestLimitsGetMinPosLongDouble(void); | long double 型の正の最小値を返します。 |
詳細については「自動生成スタブのカスタマイズ」 を参照してください。