gmock matcher与我的参数不符

时间:2013-02-22 00:14:04

标签: gmock matcher

我在像

这样的类中有一个模拟函数
int foo(const bar& b) const;

被嘲笑为

MOCK_CONST_METHOD1(foo, int(const bar& b));

我为其设置了一些默认操作,如

ON_CALL(anObject, foo(bar(0,0))).WillByDefault(Return(1));

我的测试代码

anObject.foo(bar(0,0);

但是gmock没有返回1,而是给出了以下错误:

Uninteresting mock function call - returning default value.
Function call: foo(@0xbfffcf90 8-byte object <00-00 00-00 00-00 00-00>)
The mock function has no default action set, and its return type has no default value set.

operator ==是为对象bar定义的。为什么gmock找不到我的默认动作?

1 个答案:

答案 0 :(得分:1)

错误不在上面的代码中。 ON_CALL语句在测试代码之后。

简单回答:在任何代码调用模拟方法之前,请务必使用ON_CALL语句。