谷歌模拟函数改变参数值
Google Mock functions changing value of parameter
我试图模拟出一些代码,通过写入作为参数传递给函数的引用之一来返回信息。是否有一种很好的方法来模拟这种行为,以便我可以让测试代码确定将什么值写入该变量?
我做了一些研究,结果发现GMock有几个不错的选项。来自Google Mock Cheat Sheet
SetArgReferee<N>(value)
SetArgPointee<N>(value)
"赋值给第n个(从0开始)参数引用的变量"赋值给第n个(从0开始)参数所指向的变量&;分别。
您有相当多的选择。SetArgReferee(value)和setarpointee (value),正如Daniel在2015年指出的。
对于数组有SetArrayArgument(first, last)
或者你可以使用Invoke功能来调用你自己的函数并做你想做的事情:Invoke, InvokeWithoutArgs, InvokeWithoutArgs, InvokeArgument。
在Googlemock的备忘单页面的副作用和调用部分中阅读它们的描述。
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 使用可变参数模板改变模板参数
- 有没有办法创建一个不改变程序中参数的函数
- 如何在不改变原始数组的情况下将数组作为参数传递
- 基于继承的类型参数改变父虚拟函数的行为
- 链接列表加法/减法功能正在改变参数的值
- ifstream 函数"get"如何改变其字符参数?
- 基于模板参数改变函数的参数列表
- 当我使用regasm时,所有参数都被键入为输入?这可以改变吗
- 如何使函数不改变指针形式的参数一旦完成
- 通过作为参数传递的指针改变int变量的值
- 编译器如何重载模板函数而不改变参数列表
- 将向量数组作为函数参数传递(值不会改变)
- C++如果我把参数参数从int*改为int,这些函数的调用会如何改变
- 我可以改变分布参数吗?
- 在不同的处理器中改变输入参数
- 在运行时改变参数时通过另一个模块回调(重新建立)一个模块