C++ 谷歌模拟:我怎么能;期望;不会在模拟上调用任何方法

C++ 谷歌模拟:我怎么能;期望;不会在模拟上调用任何方法,c++,googletest,googlemock,C++,Googletest,Googlemock,我想用GoogleMock测试一下,如果某个模拟对象失败,将不会调用任何方法。 所以代码应该是这样的: auto mocObj = new MockObj; EXPECT_NO_METHOD_CALL(mocObj); //this is what I'm locking for auto mainObj = new MainObj(mocObj , ......and other mocks); // here I simulate a fail using the other mock o

我想用GoogleMock测试一下,如果某个模拟对象失败,将不会调用任何方法。 所以代码应该是这样的:

auto mocObj = new MockObj;
EXPECT_NO_METHOD_CALL(mocObj); //this is what I'm locking for

auto mainObj = new MainObj(mocObj , ......and other mocks); // here I simulate a fail using the other mock objects, and I want to be sure the no methods are called on the mockObj

创建一个
stricmock
;任何意外的方法调用都将失败。

无需明确说明不会调用任何方法。如果您将日志记录级别设置得足够高,那么如果调用了一个方法(如果没有设置期望值),您应该会收到一条消息

除此之外,您还可以设置如下期望:

EXPECT_CALL( mockObj, Foo(_) ).Times(0);
在所有方法上。

对所有类方法使用精确的(0)


基数将设置为零,因此您不需要调用

您也可以使用
stricmock
而不是
NiceMock
。这将在任何“无趣”调用时失败,即,无论何时调用mock的方法,但未定义
EXPECT\u调用


请参阅谷歌模拟文档。

问题:为什么要新建对象?这是不必要的…这是我测试中需要的。但是请注意,正确的名称是
时报
,以大写字母开头。尽管该声明指出:
我们的一般建议是在大多数情况下使用漂亮的mock(还不是默认的),在开发或调试测试时使用naggy mock(当前默认的),并且使用严格的mock只是作为最后的手段。
最好小心不要停在这里,查看下一个特定电话的应答。谢谢Good Guy@Paiusco