Google Mock功能改变参数值

时间:2015-10-02 16:08:00

标签: c++ googlemock

我试图通过写入传递给函数的一个引用作为参数来模拟一些返回信息的代码。有没有一种很好的方法可以模拟这种行为,这样我就可以让测试代码确定写入该变量的值是什么?

2 个答案:

答案 0 :(得分:4)

我做了一些研究,结果发现GMock有几个不错的选择。来自Google Mock Cheat Sheet

SetArgReferee<N>(value)
SetArgPointee<N>(value)

“将值赋给由第N个(从0开始的)参数引用的变量”和“分别为第N个(从0开始)的参数指向的变量赋值”。

答案 1 :(得分:0)

你有很多选择。 SetArgReferee(value) 和 SetArgPointee(value),正如 Daniel 在 2015 年指出的那样。

然后是数组的 SetArrayArgument(first, last)。

或者您可以使用 Invoke 功能来调用您自己的函数并执行您想要的操作:Invoke、InvokeWithoutArgs、InvokeWithoutArgs、InvokeArgument。

在 Googlemock 备忘单页面的 Side EffectsInvoke 部分阅读它们的说明。