【问题标题】:Google Mock - how to name mock functions?Google Mock - 如何命名模拟函数?
【发布时间】:2015-09-11 16:03:31
【问题描述】:

我刚刚开始使用 Google Mock。 For Dummies 相当容易理解。

但是,我不明白为什么这个例子有

class MockTurtle : public Turtle {
 public:
  ...
  MOCK_METHOD0(PenUp, void());
  MOCK_METHOD0(PenDown, void());
  MOCK_METHOD1(Forward, void(int distance));
  MOCK_METHOD1(Turn, void(int degrees));
  MOCK_METHOD2(GoTo, void(int x, int y));
  MOCK_CONST_METHOD0(GetX, int());
  MOCK_CONST_METHOD0(GetY, int());
};

有多个 MOCK_METHOD0 和多个 MOCK_METHOD1 等。具有相似签名的函数似乎得到相同的模拟号,但文档没有提到这一点,解释了如何和为什么,并且定义是相同的。我怎么知道该怎么做?

【问题讨论】:

  • 乍一看,数字似乎表示模拟方法所采用的参数数量。
  • 投票结束“主要基于意见”问题的人不明白问题是什么。
  • 更新:在最近的 gmock 版本中,参数的后缀是不需要的。 MOCK_METHOD 用于所有模拟函数。

标签: c++ googlemock gmock


【解决方案1】:

How to Define It 部分有解释:

  1. 在子类的public:部分,写MOCK_METHODn(); (或 MOCK_CONST_METHODn(); 如果您正在模拟 const 方法),其中 n 是参数的数量;如果你算错了,你会感到羞耻,编译器错误会告诉你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多