- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用GTest及Gmock实现C测试驱动开发
使用GTest及Gmock实现C++测试驱动开发摘 要:测试驱动开发,是在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。文中的测试驱动示例完整的表现了一个测试驱动开发的基本过程。 关键词:测试驱动开发 GTest Gmock 1、测试驱动简介 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。就是在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完成全部功能的开发。 测试驱动开发的整个过程跟传统的软件开发过程有很大的区别,它的基本过程如下: 1) 明确当前要完成的功能。可以记录成一个 TODO 列表。 2) 快速完成针对此功能的测试用例编写。 3) 测试代码编译不通过。 4) 编写对应的功能代码。 5) 测试通过。 6) 对代码进行重构,并保证测试通过。 7) 循环完成所有功能的开发。 2、单元测试 传统的单元测试 单元测试其实在各个行业被广泛应用,举个例子说生产线上生产电视机之前,必须会对每个元件都进行测试,如果连原件都是坏的,那么生产出的电视也一定有质量问题。这些元件拼装成电路板后也要进行测试,就是通过这一层层的测试保证才能生产出一个合格的产品。 而在传统的软件开发中,单元测试是白盒测试的一部分,测试人员编写的一系列的测试代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。举个例子:开发人员开发了一个列表功能的模块,测试用例就是像列表中添加一个值,然后测试是否能取出刚刚添加的值。或者删除值,看看列表是否为空。 测试驱动中的单元测试 测试驱动开发,它要求在编写某个功能的代码之前先编写单元测试,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。 举个比较生动的例子,盖房子的时候,工人师傅砌墙,会先用桩子拉上线,以使砖能垒的笔直,因为垒砖的时候都是以这根线为基准的。TDD就是这样的原理,先写测试代码,就像工人师傅先用桩子拉上线,然后编码的时候以此为基准,只编写符合这个测试的功能代码。而一个外行人垒墙,却不知道拉线,而是直接把砖往上垒,垒了一些之后再看是否笔直,这时候可能会用一根线,量一下砌好的墙是否笔直,如果不直再进行校正,敲敲打打。 使用传统的软件开发过程就像这样,先编码,编码完成之后才写测试程序,以此检验已写的代码是否正确,如果有错误再一点点修改。 你觉着应该先拉线再砌墙,还是先砌墙再拉线呢?如果你喜欢前者,那就转入TDD阵营吧! 3、测试的应用框架简介 C++语言接近汇编语言,高效。编译生成的目标代码质量高,程序执行效率高,一直是不可替代的语言。但C++语言过于底层,缺少一些高级语言的特性,导致C++上的测试驱动框架的实现各有优劣,没有一个统治地位的测试驱动框架。在C++上的测试工具主要有CppTest,CxxTest和GTest这几种。下面对这几个测试框架进行简单的介绍。 CppUnit cppunit,这是一个与JUnit类似的框架,但这个框架很陈旧了,并且有着一些缺点。 CxxUnit 因为cppunit的多种缺陷,cppunit的鼻祖之一重写了一套C/C++单元测试框架,这就是cxxtest。与cppunit相比,可以说cxxtest具有如下一些优点:不需要RTTI;不需要成员模板功能;不需要异常处理等。它完全是作为一套头文件的集合而进行发布的。另外由于cppunit带有Make文件, 所以只能用在主要的操作系统中,而应用到不常见操作系统中源代码及Make文件修改的工作量就会很大。cxxtest不带Make文件, 所以也可用于其他操作系统中,具有更好的可移植性和可用性。 当然cxxtest也有一些缺点,例如需要用到perl或者python对测试代码的头文件进行文法扫描,生成可执行代码,准备工作比较麻烦。 Google C++ Testing Framework和Google C++ Mocking Framework Google C++ Testing Framework简称“GTest”,是大名鼎鼎的Google的开源C++单元测试框架。它已经在多个平台上验证 ( Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian )。是一个基于 xUnit 构架的测试框
您可能关注的文档
最近下载
- 二级养老护理员国家职业技能培训:制订老年人能力评估计划 PPT教学课件.pptx VIP
- 2022年计算机知识竞赛参考题库(含答案).pdf VIP
- 2021年12月大学英语四级考试题(一).pdf VIP
- 21.《大自然的声音》 说课课件(共37张PPT).pptx VIP
- 中学物理教师跨学科教学能力的评价研究.docx VIP
- 基于哈佛分析框架的泡泡玛特财务分析研究_杨鑫.pdf VIP
- 建筑工程图集 09X700(下):智能建筑弱电工程设计与施工 下册.pdf VIP
- 2025年中医内科主治医师试题库及答案(通用版).docx VIP
- 暨南大学2025年433税务专业基础考研真题.pdf VIP
- 管地暖道隐蔽工程验收的记录.doc VIP
有哪些信誉好的足球投注网站
文档评论(0)