一, 问题
gmock 提供了EXPECT_CALL的WillOnce 和WillRepeatedly方法来模拟返回值比较简单的情况(可以参考http://www.cppblog.com/woaidongmao/archive/2009/05/02/81669.html), 但是有时需要模拟更复杂的行为. 例如需要 "返回一个有序数列中大于某个值的最小数", 即stl中的lower_bound方法, 问题主要有两点:
- 返回值依赖于参数, 并且有复杂的逻辑, 简单的Return无法满足需求
- 返回值还依赖于特定的数据, 需要预