我刚刚开始使用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等。具有相似签名的函数似乎得到相同的模拟编号,但文档没有提到这一点,解释了如何&为什么,定义是相同的。我怎么知道该怎么办?
答案 0 :(得分:6)
在How to Define It部分,解释如下:
- 在子类的public:部分中,写下MOCK_METHODn(); (或者MOCK_CONST_METHODn();如果你在模拟一个const方法),其中n是参数的数量;如果你错了,羞辱你,编译错误会告诉你。
醇>