枚举类型的变量和常量可以使用一组专用的 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(<作用域枚举名称>, <列名称>)

以下显示了一个从数据源提取枚举值的简单示例:

  • No labels