Кто-нибудь видел замеченное нечетное поведение в gmock при выполнении инструкции ON_CALL с помощью оператора EXPECT_CALL? Для меня заявление EXPECT_CALL в следующем коде не работает (он фактически не применять часть Times):Нечетное поведение при использовании ON_CALL перед EXPECT_CALL с помощью Gmock
ON_CALL(myMockObject, myMockMethod()).WillByDefault(Return("hello mock")));
EXPECT_CALL(myMockObject, myMockMethod()).Times(99999);
myMockObject.myMockMethod();
Другие решения, которые я пробовал:
Переопределение myMockMethod из суперкласса и попросите его просто написать строковый литерал. Проблема в том, что я не могу определить, сколько раз он был вызван позже.
Пропустив ON_CALL часть в пользу чего-то вроде этого:
EXPECT_CALL(myMockObject, myMockMethod())
.Times(1)
.WillRepeatedly(Return("hello mock"));
Это приводит к ошибке компиляции.
Также обратите внимание, что строковый литерал, который я использую в этом примере, является обычным в реальности, и то, что gmock не сможет найти значение по умолчанию (например, bool).
С '.Times (1)' вы пробовали 'WillOnce (Return (" hello mock "))'? – Steve