EXPECT_CALL без макета в Google Test - PullRequest
0 голосов
/ 07 июня 2018

Есть ли способ протестировать вызов функции через GoogleTest для c ++ без создания фиктивного объекта, например, у нас есть следующий производственный код:

if (a)
    method(x);

Я хотел бы проверить, будет ли methodВызывается в случае, если a - это Истина, а a - Ложь.Я хотел бы создать тест, который будет делать то же самое, что и EXPECT_CALL в Google Test, но EXPECT_CALL работает только с методом фиктивного объекта.В моем случае я бы предпочел не использовать макет (нет необходимости создавать какой-либо объект).

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Если вы пытаетесь подделать бесплатную функцию, вы можете обратиться к Fake Function Framework (fff) .Он позволяет заменять бесплатные функции поддельными реализациями, которые можно использовать аналогично GoogleMock.

. Он бесперебойно работает с GoogleMock и GoogleTest.

0 голосов
/ 08 июня 2018

Как состояние здесь ,

Можно использовать Google Mock для насмешки над свободной функцией (то есть функцией в стиле C или статическим методом).Вам просто нужно переписать свой код, чтобы использовать интерфейс (абстрактный класс).

Их "Это возможно" вводит в заблуждение, так как вы должны переписать код, чтобы использовать класс (абстрактныйили предоставляется шаблоном), и поэтому больше не используют бесплатные функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...