我想测试一些失败的情况下,不会使用google mock在模拟对象上调用方法。 所以代码类似于:
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
答案 0 :(得分:45)
没有必要明确告诉不会调用任何方法。如果将日志记录级别设置得足够高,则应该在调用方法时收到消息(如果未设置期望)。
除此之外,您可以设置这样的期望:
EXPECT_CALL( mockObj, Foo(_) ).Times(0);
所有方法。
答案 1 :(得分:15)
创建StrictMock
;任何意外的方法调用都将失败。
答案 2 :(得分:2)
对所有类方法使用Exactly(0)。
基数将设置为零,因此您不希望接听电话
答案 3 :(得分:0)
您也可以使用 StrictMock
代替 NiceMock
。这将在任何“无趣”的调用中失败,即,每当调用模拟的方法时,但未定义 EXPECT_CALL
。
请参阅 Google Mock 文档 here。