我在我的项目中使用 gmock 并且遇到了为模拟函数设置自定义引用变量的问题。假设我有一个类如下:
class XXXClient {
public:
void QueryXXX(const Request&, Response&);
};
class XXXRunner {
public:
void DoSomething(XXXClient&);
};
有一个使用 XXXClient::QueryXXX 的客户端类 XXXRunner::DoSomething,我想模拟 XXXClient 来测试 XXXRunner::DoSomething。
问题是 QueryXXX 的第二个参数 'Response' 不是返回值,而是引用变量,我在 XXXClient::QueryXXX 的 Response 中填充了一些数据。我想为响应设置一个自定义数据来验证 XXXRunner::DoSomething 的不同条件。
gmock 框架可以设置预期的返回值,但我找不到设置“返回变量”的方法?
那么该怎么做呢?