独望枫

人在尘世间,有缘自相见,变化千千万,未开窍,已迷恋
posts - 45, comments - 0, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2022年3月27日

     摘要: 随着事物的接触越来越多,了解的越来越深入,我们总会发现一些新的问题或者不足。
就像前文提到的一样,我们在面对有对象的虚函数依赖的时候,可以使用gmock框架来为我们提供方便的模拟期望值,以便我们能撇除外界的影响(依赖)从逻辑上设计单元测试并持续的进行,但是并非所有对象的函数都设计成了虚函数,那么我们在面对依赖对象的非虚函数这个问题时,又该如何解决?
这个问题,已经有先行者遇到并且提出了解决方案:手动打桩、使用hook技术。
  阅读全文

posted @ 2022-03-27 22:47 小菜枫 阅读(2298) | 评论 (0)编辑 收藏

     摘要: 在面向对象的开发过程中,由于需要将各种属性或者事物按一定的规律抽象为独立的一个对象,然后按需进行调用,如此一来,对象之间的依赖便无可避免,设计不好更会产生双向依赖、交叉依赖等困境,那么我们在面对这种对象间依赖的情况下,该如何进行单元测试呢?  阅读全文

posted @ 2022-03-27 22:37 小菜枫 阅读(751) | 评论 (0)编辑 收藏

     摘要: 类的private函数相比public函数,测试套件定义的对象无法直接访问;相比protected函数,亦无法通过前文提到的FRIENT_TEST来使用,那么我们要怎么才能解决这个问题呢?  阅读全文

posted @ 2022-03-27 22:31 小菜枫 阅读(1463) | 评论 (0)编辑 收藏

     摘要: 类的protected函数相比public函数,测试套件定义的对象无法直接访问,gtest提供了一个宏FRIENT_TEST,这个宏定义如下:

#define FRIEND_TEST(test_case_name, test_name) \
friend class test_case_name##_##test_name##_Test  阅读全文

posted @ 2022-03-27 22:04 小菜枫 阅读(679) | 评论 (0)编辑 收藏

     摘要: 类的public函数在面向对象编程中是最常见亦是最常规的函数,但是其单元测试的展开跟普通函数并无二致[这里指的是没有其他对象依赖的情况,有依赖的场景请参考本系列的有依赖对象的场景文章],下面来看看具体如何实施。  阅读全文

posted @ 2022-03-27 21:36 小菜枫 阅读(304) | 评论 (0)编辑 收藏

     摘要: 普通函数在该 [gtest场景案例] 系列中,指的是普通的全局函数,既没有public等权限关键字,也没有static/const等关键字.  阅读全文

posted @ 2022-03-27 21:17 小菜枫 阅读(469) | 评论 (0)编辑 收藏

     摘要: 新的单位有推进单元测试的项目,计划选中的框架刚好是以前有用到的gtest。

于是将以前零碎记录的文章整理一下,按单元测试中常见的、典型的场景进行分类,针对不同场景下如何使用gtest进行展开,如有纰漏,欢迎各位交流及指出。
  阅读全文

posted @ 2022-03-27 20:34 小菜枫 阅读(281) | 评论 (0)编辑 收藏