В 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);
Другие вопросы по тегам