枚举类型的变量和常量可以使用一组专用的 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+SPACE 可获得已知枚举数的列表。
默认情况下,按 CTRL+SPACE 时仅显示项目中定义的枚举数。要显示在项目外部定义的枚举数,请打开项目属性,转到 Parasoft>C++test>其他设置然后提供高级选项:xharness.dumpEnumsFromFile <PATH>
, 其中<PATH>是定义枚举的来源的磁盘位置。指定路径时可以使用通配符 *。允许xharness.dumpEnumsFromFile <PATH>
选项的多个条目。
以下示例显示了带有枚举标识符的参数步骤:
您还可以在数据源中使用枚举标识符。以下示例显示了 CSV 文件的摘录。
"Input","Output" MON,TUE TUE,WED WED,THU
可以使用简单的枚举数名称或包含所有命名空间的全名。例如,如果在 ::INNER_NS::MyClass::DaysEnumeration 中定义了 MON 枚举器,则可以键入 MON 或 ::INNER_NS::MyClass::MON。
从数据源或参数步骤中提取枚举值
使用以下帮助程序宏从数据源或“参数”步骤中提取枚举值:
CPPTEST_DS_GET_ENUM(<作用域枚举名称>, <列名称>)
以下显示了一个从数据源提取枚举值的简单示例: