Използвам Google Mock за модулно тестване на моята C реализация. За една от моите макетни функции изходният параметър е дефиниран като празен указател. Макетната функция е дадена по-долу:
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)));
Когато тестът се изпълнява, не виждам персонализираните стойности, задавам на структурата. По-скоро виждам 0. Как да задам стойност на изходящ параметър, който също е празен указател в Google Mock?