本节定义可用于注册测试套件及其测试用例的宏。

定义
CPPTEST_TEST_SUITE(TestSuiteName)在测试套件定义中开始测试用例注册部分。
CPPTEST_TEST_SUITE_END()在测试套件定义中结束测试用例注册部分。
CPPTEST_TEST(testCaseName)默认测试用例注册。
CPPTEST_TEST_EXCEPTION(testcasename, ExceptionType)用于指定给定的测试用例应抛出异常。ExceptionType 用于指定异常类型。由于该类型将用于 catch 子句的异常声明,因此可以使用 ... 来表示测试用例会抛出任意异常。
CPPTEST_TEST_ERROR(testcasename, ErrorCode)

用于注册预期会导致运行时错误的测试用例(例如,被零除、访问冲突、超时、调用 exit() 函数等) 宏中使用的 ErrorCode 可以取自 C++test 运行时问题报告。例如,如果测试用例“test_0”导致超时,C++test 将报告以下错误:已经超时 (5 秒)。测试中断。

[CPPTEST_TIMEOUT]。如果这是特定预设条件下的预期行为,并且您希望将该测试用例保留为回归测试,则默认的测试用例注册行:

  CPPTEST_TEST(test_0);

应改为:

  CPPTEST_TEST_ERROR(test_0, CPPTEST_TIMEOUT);

C++test 会将超时视作测试用例“test_0”的预期结果。

CPPTEST_TEST_FAIL(testCaseName)用于指定给定的测试用例由于某些原因预期会失败(例如,异常、超时、断言失败等)。由于该宏无法指定失败的具体原因,因此最好尽可能使用 CPPTEST_TEST_ERROR()
CPPTEST_TEST_EXCEPTION()
CPPTEST_TEST_DS(testCaseName, dsDefinition)

用于注册使用来自给定数据源的数据的测试用例。以下宏可用于定义数据源:

CPPTEST_DS(dsName) - 使用具有给定名称的托管数据源。

CPPTEST_DS_ARRAY(ARRAY_NAME, ROW, COLUMN) - 使用 ARRAY_NAME 作为数据源。ARRAY_NAME 应在源代码中定义为 char* ARRAY_NAME[ROW][COLUMN]。数组的第一行必须包含列名。测试用例将执行(ROW - 1)次。

CPPTEST_DS_CSV(FILE_NAME, SEPARATOR, HAS_HEADER, TRIM) - 使用逗号分隔值文件中的数据。宏参数包括:

FILE_NAME  - 带有数据源的数据源文件的名称。可以用完整或相对文件路径指定。
注意:如果使用相对路径,则相对于测试可执行文件的工作目录,可以在测试配置的测试可执行程序运行目录字段中(执行> 运行时选项卡)自定义。  

SEPARATOR - 字段分隔符。应指定为字符常量(例如:',')。

HAS_HEADER - 如果第一条记录(第一行)是表头,则应设置为 1。否则,应设置为 0。
注意:如果 CSV 文件中没有表头,那么每个字段名就是它的序号(从 0 开始)。

TRIM - 如果省略值前后的空格,则应设置为 1。否则,应设置为 0。

CPPTEST_DS_REPEAT(NUMBER) - 使 C++test 执行给定的测试用例NUMBER 次。

CPPTEST_TEST_DISABLED(testcasename)注册一个禁用的测试用例 - 它不会被执行。
CPPTEST_TEST_EXCEPTION_DISABLED(testcasename, ExceptionType)注册一个禁用的测试用例 - 它不会被执行。
CPPTEST_TEST_ERROR_DISABLED(testcasename, ErrorCode)注册一个禁用的测试用例 - 它不会被执行。
CPPTEST_TEST_FAIL_DISABLED(testcasename)注册一个禁用的测试用例 - 它不会被执行。
CPPTEST_TEST_SUITE_REGISTRATION(TestSuiteName)注册测试套件以供执行。必须放在测试套件源文件中。
CPPTEST_CONTEXT(testedFile)在测试套件源代码中使用此宏,定义给定测试套件测试所指定的源文件/头文件。
CPPTEST_TEST_SUITE_INCLUDED_TO(tested Source)在测试套件源代码中使用此宏,指定在构建测试可执行文件时,给定的测试套件将被追加到给定源文件的末尾。
  • No labels