Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest?
原始链接:Introduction: Why Google C++ Testing Framework?
版本号:v_0.1
介绍:为什么使用GTest?
GTest帮助你写更好的C++测试代码。
不管你在什么平台上工作,无论是Linux,Windows还是Mac,只要你使用C++,GTest就可以帮助你。
对于什么是一个好的测试,GTest如何来帮助实现这个目标,我们的观点如下:
- 测试必须是独立并且可重复的。如果某个测试的通过还是失败依赖于其它测试的执行结果,那么调试它将是非常困难的。GTest通过在不同的项目下分别执行测试使得它们相互隔离。当某个测试失败后,GTest允许你单独执行它以便快速调试。
- 测试的组织必须很好的反映测试代码的结构。GTest以测试用例为单位把那些能共享相同数据和代码的测试组织起来。这种常见的模式使得我们可以很方便的识别和维护测试。当人们切换项目在新的代码基础上工作时,这种一致性会显得特别有帮助。
- 测试必须可移植和可重用。开源社区的很多代码都是平台中立的,所以它们的测试也必须平台中立。GTest可以在不同的操作系统上工作,使用不同的编译器,支持或不支持异常,所以GTest可以很容易的在不同配置上工作。(注意:当前的发行版只包含Linux的构建脚本,我们正努力工作以支持其它平台。)
- 一个测试失败后必须提供尽可能多的提示信息。GTest不会因为一个失败就停止继续工作。它仅仅停止当前测试并且继续执行后续的测试。你还可以设置测试在遇到非致命失败时继续执行并打印相关信息。通过这种方法,你可以在一个“执行-编辑-编译”周期中发现和修复多处bug。
- 测试框架必须把测试编写者从繁重的家常事务中解脱出来以集中精力于测试本身。GTest自动维护和跟踪所有定义的测试,不需要你为了运行测试而去手工枚举所有测试。
- 测试必须迅速。使用GTest,你可以在不同测试之间使用共享的资源,而只需要做一次set-up/tear-down的工作,并且测试和测试之间相互独立。
因为GTest使用流行的xUnit架构,只要你熟练使用JUnit或PyUnit就一定会感到非常亲切。如果以前没玩过的话,只要花10分钟就可以上手了。好吧,我们继续!