2012-05-24 2 views
3

Я пытаюсь интегрировать googlemock в свои тесты. Я уже успешно создал и запускал тесты на googletest, и теперь я пытаюсь постепенно добавлять функциональность gmock в тесты, но я ударил ошибку компиляции, которую я совершенно не понимаю.Ошибка компиляции, когда я #include "gmock/gmock.h"

Я не пытаюсь использовать или определять классные классы или использовать что-либо, что предоставляет gmock.h. В верхней части моего (ранее рабочего) файла tests.cpp я просто введите

#include "gmock/gmock.h" 

И я получаю ошибку компиляции:

gmock/gmock-matchers.h (2497): ошибка C2059: синтаксическая ошибка : 'SizeOf'

gmock/gmock-matchers.h (2505): см ссылку на шаблон класса конкретизации 'тестирование :: внутреннего :: ElementsAreMatcherImpl' компилируется

gmock/gmock-matchers.h (2497) : ошибка C2059: синтаксическая ошибка: ')'

gmock/gmock-matchers.h (2497): ошибка C2143: синтаксическая ошибка: отсутствует ')' перед '{'

gmock/gmock-matchers.h (2497): ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int

gmock/gmock-matchers.h (2499): warning C4183: 'Message': отсутствует тип возврата; предполагается, что это функция-член, возвращающая 'int'

Я компилирую это с помощью nmake/vC++ в Windows 7, и я не могу понять, почему я получаю эти ошибки компиляции просто из добавления основного файла gmock include к моему файл теста. Кто-нибудь видел такие вещи раньше?

+0

Я помню что-то о том, что заказ включает в себя важное значение? вы пробовали поставить gmock.h до и/или после gtest.h? –

+0

Да, я пробовал изменить порядок #include, но получил ту же ошибку. – whazzmaster

+0

Почему вы хотите включить gmock.h вообще в тестовый файл? Достаточно включить ваш Mock в свой тестовый файл. Это сработает для вас, если вы создадите Fixture.h, который включен в тестовый файл, и включите gmock.h в этот прибор? – Alex

ответ

0
  1. ли вам INIT Google макет с InitGoogleMock (& __argc, __argv) в главной функции тестового проекта?
  2. В тестовых файлах вы должны включить только «gmock/gmock.h» (и там, где вы вызываете InitGoogleMock) - нет необходимости включать gtest.h.
  3. Вы обновили свою библиотеку googletest до googlemock. (https://github.com/google/googletest)

Если все вышеизложенное верно, оно должно работать.

Смежные вопросы