EXPECT_CALL的对话是什么?

waa*_*919 3 unit-testing assert mocking googletest gmock

我有一些期望 EXPECT_CALL (...)

EXPECT_CALL(t1, foo()).Times(1);
Run Code Online (Sandbox Code Playgroud)

我想创造对面.我希望不会执行某个功能.

我应该使用什么方法?有点像EXPECT_NOT_CALL (...)

Old*_*Fox 7

但是在GTest EXPECT_NOT_CALL中存在类似于不存在的东西,有几个选项可以接收这种行为:

1.创建一个StrictMock.在StrictMock任何意外的召唤导致失败.

2.使用.Times(0):

EXPECT_CALL(t1, foo()).Times(0);
Run Code Online (Sandbox Code Playgroud)

在此选项中,您使用计数机制,但它会检查值是否为0.(因此任何调用都会导致失败...)

3.使用方法2创建一个Macro:

#define EXPECT_NOT_CALL(a,b)     EXPECT_CALL(a, b).Times(0);
Run Code Online (Sandbox Code Playgroud)