单元测试学习: mock有复杂行为的接口
来源:互联网 发布:战舰世界 数据更新出错 编辑:程序博客网 时间:2024/05/21 22:39
一, 问题
gmock 提供了EXPECT_CALL的WillOnce 和WillRepeatedly方法来模拟返回值比较简单的情况(可以参考http://www.cppblog.com/woaidongmao/archive/2009/05/02/81669.html), 但是有时需要模拟更复杂的行为. 例如需要 "返回一个有序数列中大于某个值的最小数", 即stl中的lower_bound方法, 问题主要有两点:
- 返回值依赖于参数, 并且有复杂的逻辑, 简单的Return无法满足需求
- 返回值还依赖于特定的数据, 需要预先设置
二, 解决方案
- 通过Invoke动作调用一个自定义函数, 在该函数中实现逻辑
- 将这个函数写成仿函数, 将数据预设进去.
三, 代码示例
mock类:
仿函数:
单测代码:
0 0
- 单元测试学习: mock有复杂行为的接口
- 接口的另一用法-构建单元测试的Mock对象
- 单元测试的扩展:mock object
- 单元测试的扩展:mock object
- 单元测试的扩展:mock object
- 单元测试的mock和stub
- 单元测试中mock的使用及mock神器jmockit实践
- 单元测试中mock的使用及mock神器jmockit实践
- 利用Spring的mock进行单元测试
- 单元测试时的new InitialContext() mock
- 利用spring的mock类进行单元测试
- 利用spring的mock类进行单元测试
- 利用spring的mock类进行单元测试
- 浅谈单元测试中Mock的使用
- Spring Mock--用于Spring 的单元测试
- Spring-Mock--用于Spring 的单元测试
- 使用Mock对接口(controller层)进行单元测试
- SOA下的MOCK接口
- 前端学习: HTML 学习
- perl lwp get uft-8和gbk
- 解释型语言与编译型语言的区别
- 前端学习: JS学习
- 栈的基本操作
- 单元测试学习: mock有复杂行为的接口
- 认识与学习bash
- 计算几何学习笔记之旋转卡壳
- 自定义的anim xml文件,关联的时候,没有提示.clean之后还是不能添加上
- C++指针知识点整理
- service启动的变化
- Linux rpm 命令参数使用详解[介绍和应用]
- 百万级别数据,数据库Mysql,Mongodb,Hbase如何选择?
- Android MTK 6572 光感/TP控制