9、深入探索 C++ 测试中的确认类型与改进方向

深入探索 C++ 测试中的确认类型与改进方向

1. 确认类型拓展

在测试过程中,我们常常会对指针进行解引用操作,而非直接将指针传递给宏。这意味着测试本质上是在测试布尔值,所以有时添加此类测试并非必要。

字符串字面量在源代码中十分常见,它是表示预期字符串值的便捷方式。但需注意,字符串字面量并非真正的字符串,而是指向常量字符的指针。我们不能像对布尔指针那样直接对字符串字面量指针进行解引用,因为这样只会得到单个字符,而我们需要确认的是整个字符串。

以下是一个展示字符串字面量主要用法的测试示例:

TEST("Test string and string literal confirms")
{
    std::string result = "abc";
    CONFIRM("abc", result);
}

此测试能够正常工作,是因为传递给确认函数的参数类型中有一个是 std::string 。尽管编译器未找到两个参数的精确匹配,但由于其中一个是字符串,它会将字符串字面量也转换为字符串。

然而,当我们尝试确认两个字符串字面量(预期值和实际值均为字符串字面量)时,就会遇到问题。编译器会将它们视为两个指针,而不清楚应将它们都转换为字符串。不过,这种情况在测试中并不常见。若确实需要比较两个字符串字面量,在确认前将其中一个包装为 std::string 类型即可。

2. 浮点值确认难题

在基础层面,确认操作通常是通过比较预期值和实际值来进行的,若两者不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值