枚举类型的变量和常量可以使用一组专用的 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(<scoped enum name>, <column name>)
以下是一个从数据源提取枚举值的简单示例: