列挙型の変数および定数は、専用の API マクロ群を使って処理できます。マクロは単なる汎整数値ではなく列挙識別子を使用して列挙値をレポートできます。以下の API マクロを使用して列挙値を処理できます。
- CPPTEST_REPORT_ENUM(<scoped enum name>, <txt>, <value>)
- CPPTEST_POST_CONDITION_ENUM(<scoped enum name>, <value string>, <value>)
- CPPTEST_ASSERT_ENUM_EQUAL(<scoped enum name>, <expected>, <actual>)
- CPPTEST_ASSERT_ENUM_EQUAL_MESSAGE( <scoped enum name>, <msg>, <expected>, <actual>)
パラメーターの意味:
<scoped enum name>
は、名前空間名を含む列挙型の完全名です。例: INNER_NS::MyEnumeration, INNER_NS::MyClass::MyEnumeration<value string>
は、レポートされた値を記述する文字列です。<value>
は、汎整数値または列挙子です。<txt>
は、レポートされた値を記述する文字列です。<expected>
は、汎整数値または列挙子です。
上記の API マクロを使用するには、[列挙データの自動生成を有効化] テスト コンフィギュレーション オプションを有効にする必要があります。このオプションを設定するには、[テスト コンフィギュレーション] > [実行] タブ > [全般] タブ > [インストゥルメント モード] > [編集] > [インストゥルメント機能] > [詳細オプション] に移動します。
パラメーター ステップおよびデータ ソースでの列挙値の使用
テスト ケース エディターのパラメーター テーブル内で列挙子の識別子を使用して値を指定できます。Ctrl キーを押しながらスペース キーを押すと、列挙子のリストが表示されます。
デフォルトでは、CTRL キーを押しながらスペース キーを押したとき、プロジェクト内で定義された列挙子だけが表示されます。プロジェクトの外で定義された列挙子も表示するには、プロジェクト プロパティを開いて [Parasoft] > [C/C++test] > [その他の設定] に移動し、詳細オプション xharness.dumpEnumsFromFile <PATH>
を指定します。<PATH> は列挙型を定義するソースの場所です。ワイルドカード * を使用してパスを指定できます。xharness.dumpEnumsFromFile
のエントリは複数指定できます。
次の例は、列挙識別子を含むパラメーター ステップを示しています。
データ ソースで列挙識別子を使用することもできます。次の例は、CSV ファイルの抜粋を示しています。
"Input","Output" MON,TUE TUE,WED WED,THU
列挙子名だけ、またはすべての名前空間を含む完全名を使用できます。たとえば、列挙子 MON が ::INNER_NS::MyClass::DaysEnumeration に定義されている場合、MON または ::INNER_NS::MyClass::MON と入力できます。
データ ソースまたはパラメーター ステップからの列挙値の抽出
次のヘルパー マクロを使用すると、データ ソースまたはパラメーター ステップから列挙値を抽出できます。
CPPTEST_DS_GET_ENUM(<scoped enum name>, <column name>)
次の例は、データ ソースから列挙値を抽出する簡単な例です。