c++ google mock:我怎么能“期望”在模拟上没有方法被调用呢

sbdsn5lh  于 2023-06-25  发布在  Go
关注(0)|答案(4)|浏览(161)

我想测试一下,在一些失败的情况下,没有方法将被调用的模拟对象,使用谷歌模拟。所以代码应该是这样的:

auto mockObj = new MockObj;
EXPECT_NO_METHOD_CALL(mockObj); // this is what I'm looking 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
6tqwzwtp

6tqwzwtp1#

不需要显式地告诉将不调用任何方法。如果您将日志记录级别设置得足够高,那么如果调用了一个方法(如果没有设置期望值),您应该会收到一条消息。
除此之外,你可以这样设定期望:

EXPECT_CALL( mockObj, Foo(_) ).Times(0);

所有方法。

tpgth1q7

tpgth1q72#

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

e4eetjau

e4eetjau3#

对所有的类方法使用精确(0)。
基数将被设置为零,因此您不期望任何调用

fkvaft9z

fkvaft9z4#

您也可以使用StrictMock代替NiceMock。在任何“不感兴趣”的调用中,也就是说,每当调用了mock的方法,但没有定义EXPECT_CALL时,这都将失败。
参见Google Mock文档here

相关问题