В Google Test Framework как ожидать вызова функции или вызова другой функции?
Как можно положить в логическое ИЛИ два EXPECT_CALL
макросы? Из-за внешнего фактора мой тест может привести к звонку on_found()
или к функции под названием on_not_found()
, Для моего теста объем такой же, потому что важно то, что поиск был сделан. Но у меня нет доступа к внутренним search()
функционировать и ожидать вызова к этому.
1 ответ
Решение
Вы можете добавить в тест некоторые логические переменные и сделать их истинными, когда on_found()
или же on_not_found()
и проверить логическое ИЛИ переменных в конце теста. Например,
auto onFoundCalled = false;
auto onNotFoundCalled = false;
EXPECT_CALL(mockObj, on_found())
.Times(AtMost(1)).WillRepeatedly(InvokeWithoutArgs([&onFoundCalled]
{
onFoundCalled = true;
}));
EXPECT_CALL(mockObj, on_not_found())
.Times(AtMost(1)).WillRepeatedly(InvokeWithoutArgs([&onNotFoundCalled]
{
onNotFoundCalled = true;
}));
RunSomeCode();
ASSERT_TRUE(onFoundCalled || onNotFoundCalled);