Я использую gmock в своем проекте, и у меня возникла проблема с установкой пользовательской ссылочной переменной для фиктивной функции. Предположим, у меня есть следующий класс:
class XXXClient {
public:
void QueryXXX(const Request&, Response&);
};
class XXXRunner {
public:
void DoSomething(XXXClient&);
};
Существует клиентский класс XXXRunner :: DoSomething, использующий XXXClient :: QueryXXX, и я хочу имитировать XXXClient для тестирования XXXRunner :: DoSomething.
Проблема возникает из-за того, что второй параметр QueryXXX, то есть «Response», не является возвращаемым значением, а является ссылочной переменной, которую я заполняю некоторыми данными в Response в XXXClient :: QueryXXX. Я хочу установить пользовательские данные для ответа, чтобы проверить другое состояние XXXRunner :: DoSomething.
Фреймворк gmock может устанавливать ожидаемое возвращаемое значение, но я не могу найти способ установить «возвращаемую переменную»?
Итак, как это сделать?