用户可借助此项目进行代码测试,它提供丰富的断言功能,涵盖基本有效性、数值、数组、位运算、浮点、字符串、指针及内存比较等,支持自定义失败消息,助力高效验证代码正确性。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 7 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 |
Unity 测试 API
版权所有 (c) 2007 - 2020 Unity 项目由 Mike Karlesky、Mark VanderVoord 和 Greg Williams 所有
入门指南
docs 文件夹包含了一份 入门指南 以及关于使用 Unity 的许多提示。
Unity 断言摘要
完整列表请见 UnityAssertionsReference.md。
基本有效性测试
TEST_ASSERT_TRUE(condition)
评估 condition 中的代码,如果评估结果为 false,则测试失败。
TEST_ASSERT_FALSE(condition)
评估 condition 中的代码,如果评估结果为 true,则测试失败。
TEST_ASSERT(condition)
调用 TEST_ASSERT_TRUE 的另一种方式。
TEST_ASSERT_UNLESS(condition)
调用 TEST_ASSERT_FALSE 的另一种方式。
TEST_FAIL() TEST_FAIL_MESSAGE(message)
此测试将自动标记为失败。输出消息说明失败原因。
数值断言:整数
TEST_ASSERT_EQUAL_INT(expected, actual) TEST_ASSERT_EQUAL_INT8(expected, actual) TEST_ASSERT_EQUAL_INT16(expected, actual) TEST_ASSERT_EQUAL_INT32(expected, actual) TEST_ASSERT_EQUAL_INT64(expected, actual)
比较两个整数是否相等,并以有符号整数形式显示错误。将执行类型转换以适应您的自然整数大小,因此通常可以直接使用。当您需要指定确切的大小,例如比较数组时,可以使用特定版本:
TEST_ASSERT_EQUAL_UINT(expected, actual) TEST_ASSERT_EQUAL_UINT8(expected, actual) TEST_ASSERT_EQUAL_UINT16(expected, actual) TEST_ASSERT_EQUAL_UINT32(expected, actual) TEST_ASSERT_EQUAL_UINT64(expected, actual)
比较两个整数是否相等,并以无符号整数形式显示错误。与 INT 类似,也有不同大小的变体。
TEST_ASSERT_EQUAL_HEX(expected, actual) TEST_ASSERT_EQUAL_HEX8(expected, actual) TEST_ASSERT_EQUAL_HEX16(expected, actual) TEST_ASSERT_EQUAL_HEX32(expected, actual) TEST_ASSERT_EQUAL_HEX64(expected, actual)
比较两个整数是否相等,并以十六进制形式显示错误。与其他整数比较类似,您可以指定大小...在此处,大小也会影响显示多少个十六进制数(例如,HEX16 会显示 4 个十六进制数)。
TEST_ASSERT_EQUAL(expected, actual)
调用 TEST_ASSERT_EQUAL_INT 的另一种方式。
TEST_ASSERT_INT_WITHIN(delta, expected, actual)
断言实际值在预期值的正负 delta 范围内。这也提供了大小特定的变体。
TEST_ASSERT_GREATER_THAN(threshold, actual)
断言实际值大于阈值。这也提供了大小特定的变体。
TEST_ASSERT_LESS_THAN(threshold, actual)
断言实际值小于阈值。这也提供了大小特定的变体。
数组
_ARRAY
您可以将 _ARRAY 后缀添加到这些宏中,以对该类型的数组进行比较。在这里,您需要更加注意被检查值的实际大小。您还需要指定一个额外的参数,即要比较的元素数量。例如:
TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, elements)
_EACH_EQUAL
另一个数组比较选项是检查数组的每个元素是否都等于一个预期的值。您通过指定 EACH_EQUAL 宏来完成此操作。例如:
TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, elements)
数值断言:位运算
TEST_ASSERT_BITS(mask, expected, actual)
使用一个整数掩码来指定两个其他整数之间应比较哪些位。掩码中的高位进行比较,低位忽略。
TEST_ASSERT_BITS_HIGH(mask, actual)
使用一个整数掩码来指定应检查哪些位以确定它们是否全部设置高位。掩码中的高位进行比较,低位忽略。
TEST_ASSERT_BITS_LOW(mask, actual)
使用一个整数掩码来指定应检查哪些位以确定它们是否全部设置低位。掩码中的高位进行比较,低位忽略。
TEST_ASSERT_BIT_HIGH(bit, actual)
测试单个位,并验证其是否为高。位指定为 0-31,适用于 32 位整数。
TEST_ASSERT_BIT_LOW(bit, actual)
测试单个位,并验证其是否为低。位指定为 0-31,适用于 32 位整数。
数值断言:浮点数
TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual)
断言实际值在预期值的正负 delta 范围内。
TEST_ASSERT_EQUAL_FLOAT(expected, actual) TEST_ASSERT_EQUAL_DOUBLE(expected, actual)
断言两个浮点数值在预期的较小百分比 delta 内“相等”。
字符串断言
TEST_ASSERT_EQUAL_STRING(expected, actual)
比较两个以空字符结束的字符串。如果任何字符不同或长度不同,则测试失败。
TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len)
比较两个字符串。如果任何字符不同,则在比较 len 个字符后停止比较。
TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, actual, message)
比较两个以空字符结束的字符串。如果任何字符不同或长度不同,则测试失败。失败时输出自定义消息。
TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE(expected, actual, len, message)
比较两个字符串。如果任何字符不同,则在比较 len 个字符后停止比较。失败时输出自定义消息。
指针断言
大多数指针操作可以通过简单地使用上述整数比较来完成。但是,为了清晰起见,增加了一些特殊情况。
TEST_ASSERT_NULL(pointer)
如果指针不等于 NULL,则测试失败。
TEST_ASSERT_NOT_NULL(pointer)
如果指针等于 NULL,则测试失败。
内存断言
TEST_ASSERT_EQUAL_MEMORY(expected, actual, len)
比较两块内存。这对于无法强制转换为标准类型的类型来说是一个很好的通用断言,但是由于它是内存比较,您必须小心数据类型是否已打包。
_MESSAGE
您可以将 _MESSAGE 后缀添加到任何宏中,使其接受一个额外的参数。这个参数是一个字符串,将在失败字符串的末尾打印。这对于指定问题的更多信息非常有用。