Есть ли способ протестировать вызов функции через GoogleTest для C++ без создания фиктивного объекта, например. у нас есть следующий производственный код:
if (a)
method(x);
Я хотел бы проверить, будет ли вызываться method в случае, если a имеет значение True, а a - False. Я хотел бы создать тест, который делает то же самое, что и EXPECT_CALL в Google Test, но EXPECT_CALL работает только с методом фиктивного объекта. В моем случае я бы предпочел не использовать макет (нет необходимости создавать какой-либо объект).
Я исправил свой вопрос. Спасибо, что исправили слишком общую формулировку.
Это все еще невозможно?





Как состояние здесь,
It's possible to use Google Mock to mock a free function (i.e. a C-style function or a static method). You just need to rewrite your code to use an interface (abstract class).
Их "Это возможно" вводит в заблуждение, так как вам нужно переписать код, чтобы использовать класс (абстрактный или предоставленный шаблоном), и поэтому больше не использовать бесплатные функции.
То есть тестирование бесплатной функции через GoogleTest невозможно?
Это то, что я понимаю.
Если вы пытаетесь подделать бесплатную функцию, вы можете изучить Фреймворк фальшивых функций (fff). Он позволяет заменять бесплатные функции поддельными реализациями, которые можно использовать аналогично GoogleMock.
Он без проблем работает с GoogleMock и GoogleTest.
Насколько я понимаю, линковку библиотек нужно изменить, чтобы не включать настоящую библиотеку, а фальшивую. Я прав?
А
EXPECT_CALLоткуда берется? Делает что? Пожалуйста, не думайте, что люди используют или знают ваши инструменты. Будьте ясны и подробны.