Я использую Google Mock для модульного тестирования моей реализации C. Для одной из моих фиктивных функций параметр out определяется как недействительный указатель. Мок-функция приведена ниже:
MOCK_METHOD3(file_read, int(const char *file_name, const char *type_name, void *data_p));
Согласно Как установить значение аргумента void * фиктивного метода в фиктивном тестировании Google?
Я создал ACTION_P
ACTION_P(SetArg2ToMCValue, value) { reinterpret_cast<void *>(arg2) = value; }
В моем тестовом коде я установил значение по умолчанию для параметра, который приводится к void в ACTION_P, и мое ожидание
struct.a = 5.0;
struct.b = 15.0;
//Expectations
EXPECT_CALL(*libfile_mock, file_read(_,_,_)).WillOnce(DoAll(SetArg2ToMCValue(&struct), Return(0)));
Когда тест запускается, я не вижу пользовательских значений, я устанавливаю в struct. Скорее я вижу 0. Как мне установить значение параметра out, который также является пустым указателем в Google Mock?