28 | 尝试升级(上):完善测试框架的功能与提示
胡光
你好,我是胡光,欢迎回来。
在上一节课中呢,我们学习了测试框架的主要功能流程,完成了最重要的 RUN_ALL_TESTS 函数的功能逻辑。并且在这个学习期间,我们还使用了注册函数的技巧,就是让一些函数先于主函数执行,将测试用例函数信息记录在一个函数指针数组中,为后续的 RUN_ALL_TESTS 函数功能的执行作铺垫。
可你有没有发现,我们上节课程所完成的代码,只能让我们的测试框架在整体流程功能上跑通,然而程序的输出内容却不如 gtest 丰富。
今天,我们的主要任务,就是参考 gtest 的输出,逐步完善我们自己测试框架的相关信息输出方面的细节,从而让输出内容更加符合我们想要的信息。来,让我们一起开始吧。
温故知新,gtest 的输出结果
我们先来回顾一下 gtest 的输出结果,gtest 的输出内容大体可以分成三个部分。
第一部分,一套单元测试的相关信息:
这段信息说明这套单元测试中,包含了 2 个测试用例。
第二部分,是每个单元测试运行信息的输出:
如上所示,第一个单元测试 test_is_prime.test1 运行结果正确,所用时间是 1ms;第二个单元测试 test_is_prime.test2 中,有三个判等 EXPECT 断言的结果是错误的,也就是 is_prime 函数的返回值,和测试用例中期望的返回值不符,这说明 is_prime 函数存在 Bug。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何完善测试框架的功能与提示。作者首先回顾了gtest的输出结果,包括单元测试的相关信息、每个单元测试运行信息的输出以及单元测试的总结信息。然后,作者提出了完善测试框架输出信息的三个方面:输出测试用例的名字、输出测试用例的运行时间与结果、以及在EXPECT断言出错时输出错误提示信息。接着,作者详细介绍了如何通过修改注册函数的功能逻辑和数据结构,实现了输出测试用例名字的功能改造。通过修改注册函数的逻辑和调整RUN_ALL_TESTS中使用test_function_arr数组的逻辑代码,实现了输出测试用例名字的框架功能改造。文章内容详实,通过实际代码示例和解释,使读者能够快速了解如何完善测试框架的功能与提示。文章还介绍了如何统计函数过程的运行时间和确定测试结果是否正确的方法,并给出了相应的代码示例。最后,作者鼓励读者通过课程小结中的基本原则,即功能迭代,数据先行,来设计和开发功能,以及鼓励读者在测试框架中加入更多令人惊喜的功能。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《人人都能学会的编程入门课》,新⼈⾸单¥59
《人人都能学会的编程入门课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 宋不肥1/(一个时钟周期的时间)应该就是主频吧,应该不会是兆级别的吧
作者回复: 你说的是CPU的工作频率,和文中说的概念不是一个。
2020-03-28 - 奕一个 CPU 时钟周期 是不是就执行一条 CPU 指令?
作者回复: 不是的。如果是这样的话,1秒钟,执行100万条指令,我的电脑也太慢了~~~(捂脸)
2020-03-24
收起评论