Gmock устанавливает параметр
В тестовом методе GMock мне нужно установить для параметра out адрес переменной, чтобы параметр out dequeue()
, который data
указывает на переменную ch
:
MOCK_METHOD1(dequeue, void(void* data));
char ch = 'm';
void* a = (void*)&ch;
EXPECT_CALL(FQO, dequeue(_))
.WillOnce(/*here I need to set argument to a*/);
Я пытался выяснить побочные эффекты, но получаю ошибку.
1 ответ
Решение
Если вы хотите, чтобы выходной параметр функции указывал на void*
тогда его тип должен быть void**
:
MOCK_METHOD1(dequeue, void(void** data));
в противном случае вы можете только вернуть значение, но не указатель на значение через выходной параметр.
Если вы внесете соответствующие изменения в подпись вашего dequeue()
метод и вызов MOCK_METHOD1()
, то это должно делать то, что вы хотите:
EXPECT_CALL(FQO, dequeue(_))
.WillOnce(SetArgPointee<0>(a));