GMock и mocking конструкторы в классе с не виртуальными методами - PullRequest
2 голосов
/ 17 мая 2011

мне нужно смоделировать класс, который имеет только не виртуальные методы. Этот класс имеет конструктор копирования. Как мне написать макет метод для этого. Я получаю ошибка компилятора, если я просто использую

MOCK_METHOD1(classname, void(classname& source)); 

Спасибо заранее.

1 Ответ

6 голосов
/ 05 июня 2011

Вы не можете высмеивать не виртуальные функции с помощью gmock.Итак, первая альтернатива, которую следует рассмотреть, - это сделать функции виртуальными.Если вас беспокоит снижение производительности при виртуализации функций, убедитесь, что это действительно проблема (путем измерения), потому что обычно это не так.

Альтернативное решение, если нет возможности сделать функцииВиртуальный это использовать шаблоны.См. этот вопрос для подробностей об этой технике и этот вопрос о плюсах и минусах использования.

...