当前位置: 首页 > news >正文

雅昌网站做古董交易新闻稿件代发平台

雅昌网站做古董交易,新闻稿件代发平台,音乐网站建设的开发平台,wordpress ajax本地化文章目录 gmock vs mockcpp1 基本介绍2 语法风格与使用方式gmock 特点(基于接口 Mock):mockcpp 特点(基于重写/拦截原函数): 3 对比总结4 实际使用建议 gmock vs mockcpp gmock 和 mockcpp 是 C 中常用的两…

文章目录

  • gmock vs mockcpp
    • 1 基本介绍
    • 2 语法风格与使用方式
      • gmock 特点(基于接口 Mock):
      • mockcpp 特点(基于重写/拦截原函数):
    • 3 对比总结
    • 4 实际使用建议

gmock vs mockcpp

gmockmockcpp 是 C++ 中常用的两个 Mock 框架,用于单元测试时模拟对象或函数的行为。

它们的核心目标相似:使测试更加隔离、可控与可验证,但两者在设计理念、使用方式、语法风格、兼容性等方面存在明显差异。


1 基本介绍

项目gmock(Google Mock)mockcpp
作者Google东南大学(何海涛等)
语言C++(与 gtest 紧密集成)C++
发布时间2008 年左右2006 年左右
依赖Google Test (gtest)无需 gtest,可与其它测试框架搭配

2 语法风格与使用方式

gmock 特点(基于接口 Mock):

  • 基于接口/抽象类设计(需要提前设计好虚函数接口)
  • 使用宏定义 MOCK_METHOD() 快速生成 Mock 函数
  • 测试语句直观如:EXPECT_CALL(mockObj, Foo()).Times(1);
  • 支持匹配器(_, Eq(x), AnyOf, AllOf 等)
  • 语法现代、类型安全,支持 C++11+
class ICalc {
public:virtual int Add(int a, int b) = 0;virtual ~ICalc() = default;
};class MockCalc : public ICalc {
public:MOCK_METHOD(int, Add, (int a, int b), (override));
};TEST(MyTest, Addition) {MockCalc calc;EXPECT_CALL(calc, Add(1, 2)).WillOnce(Return(3));ASSERT_EQ(calc.Add(1, 2), 3);
}

mockcpp 特点(基于重写/拦截原函数):

  • 不依赖接口或虚函数,可以对 非虚函数/全局函数/静态函数 进行 Mock
  • 使用 MOCKER(methodName).stubs().will(returnValue()); 风格
  • 内部使用函数地址重写、hook 技术等实现原函数替换
  • 支持打桩(Stub)与调用验证
  • 适合 legacy code(老代码)测试,不易侵入原设计
class Calc {
public:int Add(int a, int b) { return a + b; }
};TEST_F(MyTest, AddMock) {MOCK_METHOD(Calc, Add).stubs().will(returnValue(42));Calc calc;ASSERT_EQ(calc.Add(1, 2), 42);
}

3 对比总结

特性gmockmockcpp
Mock 方式基于虚函数接口函数地址拦截,可 Mock 普通函数
对老代码支持差,需重构为虚接口强,无需修改原代码
语法风格现代,强类型安全,表达式链式调用类似脚本语言的 DSL,易用但类型不安全
调用验证支持 EXPECT_CALL支持 .expects().with(...)
可测试对象虚函数、成员函数所有函数(包括静态函数、全局函数)
依赖关系依赖 gtest独立,兼容多种测试框架
编译兼容性高度依赖编译器特性,现代 GCC/Clang 更好支持低层 hook,有些编译器和系统下不稳定
适合应用新代码、接口良好的模块老代码、未封装接口的遗留项目

4 实际使用建议

  • 如果你在做现代 C++ 项目(C++11+)并使用 gtest 作为测试框架,推荐使用 gmock,配合 gtest 效果更佳;
  • 如果你在维护遗留项目、无法改写为虚函数接口,或者需要对 静态函数、全局函数、第三方库函数进行打桩,推荐使用 mockcpp;
  • 也可以在一个项目中同时使用 gmock 和 mockcpp,根据不同的模块情况选择合适的 Mock 方式。
http://www.hkea.cn/news/671950/

相关文章:

  • 百度对新网站排名问题兰州seo快速优化报价
  • 网站建设常用代码湘潭网络推广
  • 做网站上传图片一直错误好用搜索引擎排名
  • 钟祥网站建设网络推广的含义
  • 新闻类网站源码青岛官网seo
  • 网站优化哪里可以做百度营销客户端
  • 常德建设局网站北京优化网站方法
  • 用ip做网站优化手机流畅度的软件
  • 为网站添加统计媒介
  • 商业设计网站推荐互联网营销师证书是国家认可的吗
  • 做网站的是干嘛的怎样把自己的产品放到网上销售
  • 品牌型网站制作价格2022年小学生新闻摘抄十条
  • 政府网站群集约化建设网络暴力事件
  • 可以做卷子的网站游戏app拉新平台
  • 长沙优化网站关键词社区营销
  • 个人网站制作价格表重庆关键词优化
  • 网站开发ideseo优化网站模板
  • 关于制作网站收费标准怎样把个人介绍放到百度
  • 网站建设 绵阳百度开放平台
  • discuz修改网站标题微信小程序开发平台
  • 怎么做国内网站吗seo顾问培训
  • 网站排名不稳定怎么办seo+网站排名
  • 做网站要淘宝热搜关键词排行榜
  • 做网站 创业 流程网络建站流程
  • 怎么做购物网站系统文本广州网络营销推广
  • 网站后台管理系统cms推广seo网站
  • 企业网站备案注销百度推广登陆平台
  • 重庆如何软件网站推广网站优化seo
  • 最专业的佛山网站建设价格3小时百度收录新站方法
  • wordpress门户建站html网页完整代码作业