谷歌模拟:我怎么能" EXPECT "不会在模拟上调用任何方法

google mock : how can I " EXPECT " that no method will be called on a mock

本文关键字:模拟 任何 方法 调用 EXPECT 怎么能 谷歌      更新时间:2023-10-16

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

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

不需要显式地告诉不调用任何方法。如果您将日志级别设置得足够高,则在调用方法时(如果没有设置期望)应该会得到一条消息。

除此之外,您可以像这样设置期望:

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

创建StrictMock;

所有的类方法都使用Exactly(0)

基数将设置为零,因此您期望没有调用

您也可以使用StrictMock代替NiceMock。这将在任何"无趣"的情况下失败。调用,即每当调用mock的方法时,但是没有定义EXPECT_CALL

查看Google Mock文档

相关文章: