- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GTest单元测试Gest单元测试
伪代码: class Sale { void scan() { ........... showLine(); ........... } virtual showLine() { 调用设备SDK方法showLine(); } } 链接接缝 C++及很多语言在代码编译后,我们是可以在其链接期时改变其行为的。 预编译 编 译 汇 编 源程序 链 接 展开宏 处理条件编译指令 处理预编译指令 删除注释、加标识 . . . . . 词法分析 语法分析 语义分析 优化汇编代码 . . . . . 汇编码译为机器码 (目标文件.obj) . . . . . 地址和空间分配 符号决议 重定位 . . . . . 可执行应用程序 链接图示 流程图示 本地实现调用第三方库功能, 在加载阶段去掉第三方库文件,添 加本地的.obj目标文件。 参考资料 1. /p/googletest/wiki/Documentation Gtest官方文档 2. CoderZh技术博客《玩转Google开源C++单元测试框架GoogleTest系列》 3. 《xUnit.Test.Patterns.Refactoring.Test.Code》 4. 《修改代码的艺术》 5. 《程序员的自我修养-链接、装载与库》 感谢您的关注 断言宏分类: (1) ASSERT_*系列:检查点失败时,推出当前函数 (2) EXPECT_*系列:检查点失败时,继续往下执行 1.3.1 断 言 布尔值检查 数值型检查 字符串检查 浮点型检查 当断言检查出错时输出的信息并不能很好的帮助你还原当时出错的状况时, 可以使用“” 操作符输出指定内容帮助分析出错原因。 1.3.2 事件机制 Gtest事件机制分类: 全局:发生在所有案例执行前后 TestSuite:案例中所有案例执行前后 TestCase: 单个案例前后 全局事件 要实现全局事件,必须写一个类,继承testing::Environment类,实现里面的SetUp和TearDown方法。 1. SetUp()方法在所有案例执行前执行 2. TearDown()方法在所有案例执行后执行 TestSuite事件 需要实现一个类,继承testing::Test,然后实现两个静态方法 1. SetUpTestCase() 方法在第一个TestCase之前执行 2. TearDownTestCase() 方法在最后一个TestCase之后执行 TestCase事件 TestCase事件发生在每个TestCase执行前后 1. SetUp()方法在每个TestCase执行前执行 2. TearDown()方法在每个TestCase执行后执行 当被测函数需要传入不同的值时,可以考虑Gtest提供的参数化测试功能。 1.3.3 参数化测试 INSTANTIATE_TEST_CASE_P(param1,param2,param3) param1:任意取; param2:测试案例的名称; param3:参数生成器 (eg:testing::Values()); 使用说明: 在运行Gtest时,Gtest提供了一系列的参数可以使我们对案例的执行进行有效的控制。 1.3.4 运行参数 Gtest工程
文档评论(0)