本主题说明了如何访问和探索 C++test 的自动生成的测试用例。
在本章节中:
自动生成的测试用例保存在测试套件文件中。使用默认设置,C++test 为每个测试文件生成一个测试套件。它还可以被配置为为每个功能生成一个测试套件(有关详细信息,请查阅 测试套件选项卡 )。
要查看生成的测试用例:
tests/autogenerated
目录中。测试套件包含使用以下架构的测试用例:
如果稍后将更多的功能添加到待测试文件中,那么测试生成将在更新后的文件上运行,额外的测试用例将添加到原始的测试套件文件中。
每个测试套件都以以下两个宏开始:
CPPTEST_CONTEXT:
指定测试套件测试哪个文件。只能指定一个源文件。如果未指定上下文,则在执行项目时将执行测试套件。CPPTEST_TEST_SUITE_INCLUDED_TO
: 表示它是包含的测试套件,并指定在生成测试可执行文件时将包含测试套件源的文件。如果要包括其他文件,请使用 #include 指令。这两个宏指定的文件应始终与被测文件的名称匹配。如果待测试文件的名称更改,则必须相应地修改这些宏的值。
这两个宏都可以使用相对路径。相对路径必须以“ ./”或“ ../”开头。
以下后置条件宏用于报告测试执行期间变量或类成员所具有的值:
这些宏的结果(报告的所有断言值)都显示在【质量任务】视图中。任何带有报告后置条件的测试用例都可以在回归测试中自动验证。验证将后置条件宏更改为断言,如果后续测试没有生成预期的(经过验证的)值,则断言将失败。这对于自动生成遗留代码的回归基础特别有用。有关验证的详细信息,请查阅 验证测试用例以进行回归测试。
验证后置条件时,将断言宏添加到测试用例。
此外,可以根据您的测试需求手动添加其他宏。
有关可以在测试用例中使用的宏的列表,请查阅 C/C++test API 文档。
自动生成的测试用例有时包含特殊功能(例如,用于访问最大值的最小值)。
为了使用不同的数值生成测试用例,C++test 运行时库包含一组函数,这些函数返回整数和浮点类型的最小/最大值。下表描述了这些函数。所有列出的功能都可以在用户定义的测试用例中使用。
功能 | 目的 |
---|---|
char cpptestLimitsGetMaxChar(void); | 返回 char 类型的最大值。 |
char cpptestLimitsGetMinChar(void); | 返回 char 类型的最小值。 |
signed char cpptestLimitsGetMaxSigned Char(void); | 返回 char 类型的最小值。 |
signed char cpptestLimitsGetMinSigned Char(void); | 返回带符号 char 类型的最小值。 |
unsigned char cpptestLimitsGetMaxUnsigned Char(void); | 返回不带符号 char 类型的最大值。 |
short cpptestLimitsGetMaxShort(void); | 返回 short 类型的最大值。 |
short cpptestLimitsGetMinShort(void); | 返回 short 类型的最小值。 |
unsigned short cpptestLimitsGetMax UnsignedShort(void); | 返回不带符号 short 类型的最大值。 |
int cpptestLimitsGetMaxInt(void); | 返回 int 类型的最大值。 |
int cpptestLimitsGetMinInt(void); | 返回 int 类型的最小值。 |
unsigned int cpptestLimitsGetMaxUnsigned Int(void); | 返回不带符号 int 类型的最大值。 |
long cpptestLimitsGetMaxLong(void); | 返回 long 类型的最大值。 |
long cpptestLimitsGetMinLong(void); | 返回 long 类型的最小值。 |
unsigned long cpptestLimitsGetMaxUnsigned Long(void); | 返回不带符号 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 cpptestLimitsGetMinPosLongDou-ble(void); | 返回 long double 类型的最大正值。 |
请查阅 了解和自定义自动生成的存根。