2013-08-15 7 views
1

Я пытаюсь получить виджеты Google Mocks, но я ударил об этом, пытаясь высмеять не виртуальные методы. У меня есть класс Socket, который я хочу высмеять. Он имеет не виртуальный метод, называемый «записи», который принимает аргументы:Ошибки при генерации не виртуального метода

class Socket { 
public: 
    int write(const unsigned char* buffer, size_t bufferLength) const; 
} 

Так я создаю Пробный класс, как указано поваренной книги:

class MockSocket { 
public: 
    MOCK_CONST_METHOD0(write, int(const unsigned char* data, size_t dataLength)); 
}; 

Но это не компилируется. Он генерирует следующие ошибки:

error: size of array ‘this_method_does_not_take_0_arguments’ is negative 
error: no matching function for call to ‘testing::internal::FunctionMocker<int()(const unsigned char*, size_t)>::Invoke()’ 
error: no matching function for call to ‘testing::internal::FunctionMocker<int()(const unsigned char*, size_t)>::With()’ 

Может ли кто-нибудь сказать мне, почему?

Спасибо.

ответ

1

Хорошо, сегодня утром я не очень хорошо смешивал свой кофе. Выяснил проблему. Использул неправильный макрос. Эта работа:

class MockSocket { 
public: 
    MOCK_CONST_METHOD2(foo, int(const unsigned char* buffer, size_t len)); 
}; 

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

  • Нет связанных вопросов^_^