优化测试确认:从基础类型到浮点值比较
在软件开发中,测试是确保代码质量的关键环节。本文将详细介绍如何通过测试驱动开发(TDD)的方法,逐步完善测试确认机制,从基础类型的测试到更复杂的浮点值比较。
1. 测试驱动开发的基础:创建失败测试
首先,我们来看一个简单的测试用例,它的目的是故意失败,以此来获取失败信息:
int ten = 10;
CONFIRM_THAT(ten, Equals(9));
这个测试必然会失败,因为 10 不等于 9。我们构建并运行这个测试,从摘要报告中获取失败信息,然后添加 setExpectedFailureReason
调用,将测试转换为预期失败:
TEST("Test hamcrest style confirm failure")
{
std::string reason = " Expected: 9\n";
reason += " Actual : 10";
setExpectedFailureReason(reason);
int ten = 10;
CONFIRM_THAT(ten, Equals(9));
}
运行这个测试后,我们可以看到 Hamcrest 测试的结果,一个通过,一个预期失败。
2. 扩展 Hamcrest 类型支持
接下来,我们要扩展 Hamcrest 确认的类型支持。按照 TDD 的模式,