Google Mock: как настроить собственное сообщение для объяснения сбоя совпадения

В случае неудачи совпадения Google макет печатает сообщение, подобное следующему:

test.cpp: 112: EXPECT_CALL (mock_obj, foo ( MyMatcher( бар ))) …
Ожидаемый аргумент № 0: равно [1,2; 3,4] фактический: {1}
Ожидаемый: будет вызван один раз
Актуально: никогда не звонил — неудовлетворен и активен

Использование настраиваемого сопоставителя MyMatcher Я могу определить строку описания, которая используется для генерации сообщения об ошибке при сбое сопоставления. Но это определяет только Ожидаемый аргумент № 0 часть сообщения. Есть ли способ, как я могу настроить, как фактический печатается?

В моем случае я не могу перегрузить оператор<< для класса бар так как он уже перегружен сторонним кодом, не находится под моим контролем (эта библиотека определяет класс бар и оператор<< для этого).

3

Решение

Как я не в состоянии определить operator << для меня classGoogle Test есть возможность определить PrintTo функция для этого Обучение Google Test, как распечатать ваши значения. Спасибо RA по ссылке.

Пользователь может переопределить это поведение для типа класса Foo, определив перегрузку PrintTo () в пространстве имен, где определен Foo. Мы даем пользователю эту опцию, так как иногда определяя << оператор для Foo нежелателен (например, стиль кодирования может помешать этому, или уже существует << оператор, но он не делает то, что хочет пользователь).

void PrintTo(const Bar& value, ::std::ostream* os);
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]