Google Mock: как я могу «ОЖИДАТЬ», что никакой метод не будет вызываться на макете - PullRequest
25 голосов
/ 27 декабря 2011

Я хочу проверить, в случае какого-либо сбоя ни один метод не будет вызван для фиктивного объекта, используя 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

Ответы [ 3 ]

46 голосов
/ 27 декабря 2011

Нет необходимости явно указывать, что никакие методы не будут вызваны.Если вы установите достаточно высокий уровень ведения журнала, вы должны получить сообщение, если вызывается метод (если ожидание не установлено).

Кроме этого, вы можете установить ожидания следующим образом:

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

на всех методах.

15 голосов
/ 27 декабря 2011

Создать StrictMock;любой неожиданный вызов метода будет неудачным.

3 голосов
/ 10 марта 2015

Используйте точно (0) для всех ваших методов класса.

мощность будет установлена ​​на ноль, поэтому вы не ожидаете вызовов

...