如何使用运算符[]创建模拟类?

2024-06-02

我正在上课operator[], 像这样 :

class Base
{
  public:
    virtual ~Base(){}
    virtual const int & operator[]( const unsigned int index ) const = 0;
};

如何使用谷歌模拟框架为此方法创建模拟类?

我试过这个:

class MockBase : public Base
{
public:
  MOCK_CONST_METHOD1( operator[],
                      const int& ( const unsigned int )
                      );
};

但这会产生下一个错误:

error: pasting "]" and "_" does not give a valid preprocessing token
error: pasting "]" and "_" does not give a valid preprocessing token
error: pasting "]" and "_" does not give a valid preprocessing token
error: pasting "]" and "_" does not give a valid preprocessing token

The MOCK_METHOD#宏不适用于运算符。中给出的解决方案这条信息 http://groups.google.com/group/googlemock/browse_thread/thread/3bee5c4d556db301?pli=1说创建一个常规的模拟方法:

class Base {
 public:
 virtual ~Base () {}
 virtual bool operator==(const Base &) = 0;
};

class MockBase: public Base {
 public:
 MOCK_METHOD1(Equals, bool(const Base &));
 virtual bool operator==(const Base & rhs) { return Equals(rhs); }
}; 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用运算符[]创建模拟类? 的相关文章

随机推荐

  • Linux 阻塞与非阻塞串行读取

    I have 这段代码 https stackoverflow com questions 6947413 how to open read and write from serial port in c用于在Linux中从串行读取 但我不
  • nuget.exe 安装不更新packages.config(或.csproj)?

    在尝试在 Linux mono 上运行 nuget 构建工作流程时 我注意到一件奇怪的事情 在 Linux 上 我无法使用 nuget Visual Studio 插件或 Powershell 控制台 但我有 nuget exe 命令行实用
  • WooCommerce 自定义字段 - 多选

    我在 WooCommerce 的结账页面添加额外的字段 我可以添加文本框等基本字段 但需要添加一个 多 选择框 用户可以在其中选择多个项目 我已经弄清楚如何通过代码添加选择框 如下所示 add action woocommerce afte
  • 在使用“apt-get”安装软件包之前如何检查版本?

    我正在考虑安装hylafax 版本 5 5 4 于上个月在我的网站上发布Debian http en wikipedia org wiki Debian PC 我检查了dpkg l grep hylafax 发现当前版本是5 5 3 然后我
  • 期待、互动,然后再次期待

    有几篇关于相同内容的帖子 但我仍然无法使我的期望脚本正常工作 我的目的是自动化一切 但保留用户输入的密码 所以脚本有 3 个部分 自动登录 给予用户交互以输入密码 将控制权交还给 Expect 脚本以继续工作 所以我有一个将生成的脚本 其中
  • python 3.4 计算 .txt 文件中的出现次数

    我正在为我正在上课的课程编写一个 简单 的小程序 这应该询问我要搜索哪个团队 然后返回它出现在 txt 文件列表中的次数 它像它应该的那样请求输入 并且看起来运行得很好 它现在已经运行了一个小时 我完全没有收到任何错误 它似乎陷入了循环 预
  • 图像分析-光纤识别

    我是图像分析新手 您知道如何以仅获取纤维的方式对该图像进行二值化吗 我尝试过不同的阈值技术等 但没有成功 我不介意应该使用什么工具 但我更喜欢 NET or Matlab PS 我不知道该把答案放在哪里 所以我把它放在StackOverfl
  • scrapy:当蜘蛛退出时调用函数

    有没有办法在 Spider 类终止之前触发该方法 我可以自己终止蜘蛛 如下所示 class MySpider CrawlSpider Config stuff goes here def quit self Do some stuff ra
  • 使用 Swagger UI 进行基本身份验证

    我正在尝试通过 Swagger UI 开发一个基于 spring boot 的 REST API 服务以及 API 文档 我想通过 swagger UI 启用基本身份验证 以便用户只有在使用 swagger UI 上的 授权 按钮进行身份验
  • 匿名、身份验证、模拟和委派之间有什么区别,为什么委派需要 Kerberos?

    当我们的客户安装我们的软件时 他们通常选择 拆分安装 其中服务在一个机器上运行 数据库在另一个机器上 这些服务可能与其他服务通信 或者数据库可能包含需要与另一个数据库通信的存储过程 这将我们带入了 Kerberos 和 SetSPN 的黑暗
  • jQuery 多部分表单验证

    当我解决这个问题时 这可能会变成多个问题 但我需要一些认真的 jQuery 帮助 我已经根据示例创建了一个多部分表单bassistance de http jquery bassistance de validate demo multip
  • Onsen-UI 滑动导航 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我试图弄清楚如何通过使用 滑动 导航在 Onsen UI 上实现 android 感觉 我尝试实施危险的刷卡器 但运气不
  • 将 mysql LONGTEXT 值转换为 VARCHAR 值?

    我有一个在用户 Facebook 墙上发布的功能 我发送到 facebook 的一件事是我从设置为 LONGTEXT 的 mysql 表中获取的一些文本 如果我将表设置为 LONGTEXT 则文本不会发送到 facebook 但如果我将表设
  • Expo 应用程序“您的应用程序正在使用广告标识符 (IDFA)”

    我正在尝试将应用程序上传到应用程序商店 每次我上传二进制文件时 苹果都会坚持认为我的应用程序正在使用广告 而我从未实现过这样的事情 我查看了文档并删除了涉及的所有代码ASIdentifier and adIdentifier我不太确定我错过
  • AWS Lambda - Nodejs 函数不会返回数据

    我是 NodeJS 函数调用的新手 我已经在屏幕上敲了几个小时了 我所有的谷歌搜索都没有帮助 所以我有一个 AWS Lambda 函数 它接收一个带有单个 ID 号的 JSON 对象 该 ID 号将被传递并最终作为 myid 发送到 get
  • python多重继承,调用基类函数

    我只是尝试在 python 中进行多重继承 我想出了这个 class ParentOne def foo self print ParentOne foo is called class ParentTwo def foo self pri
  • ASP.NET MVC 路由如何工作?

    我定义了以下路线 public static void RegisterRoutes RouteCollection routes routes IgnoreRoute resource axd pathInfo routes MapRou
  • 为什么这个跨域ajax调用实际上有效?

    我无意中写了一个跨域AJAX调用NextBus http www nextbus com xmlFeedDocs NextBusXMLFeed pdf 使用 jQuery ajax url http webservices nextbus
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • 如何使用运算符[]创建模拟类?

    我正在上课operator 像这样 class Base public virtual Base virtual const int operator const unsigned int index const 0 如何使用谷歌模拟框架为