谷歌模拟 - 如何命名模拟功能?

时间:2015-09-11 16:03:31

标签: c++ googlemock gmock

我刚刚开始使用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等。具有相似签名的函数似乎得到相同的模拟编号,但文档没有提到这一点,解释了如何&为什么,定义是相同的。我怎么知道该怎么办?

1 个答案:

答案 0 :(得分:6)

How to Define It部分,解释如下:

  
      
  1. 在子类的public:部分中,写下MOCK_METHODn(); (或者MOCK_CONST_METHODn();如果你在模拟一个const方法),其中n是参数的数量;如果你错了,羞辱你,编译错误会告诉你。
  2.