单元测试实践的主要问题与解决(7)
2013-01-01 15:38
357 查看
单元测试实践的主要问题与解决(7)
分类: 单元测试实践的主要问题与解决2012-01-1210:36 1187人阅读 评论(0) 收藏 举报
(承上篇)
这个底层函数返回的是一个对象指针,如何模拟呢?双击函数名,打开底层模拟器。
![](http://hi.csdn.net/attachment/201201/12/0_1326335146T26d.gif)
首先,在前置代码中定义对象并初始化。然后,在模拟值中填写这个对象的地址。
![](http://hi.csdn.net/attachment/201201/12/0_13263351846m97.gif)
这是模拟的结果。
![](http://hi.csdn.net/attachment/201201/12/0_1326335269plpn.gif)
复杂对象的数据一样可以移到表格中,这时,要移到表格中的不是对象本身,而是对象中包含的数据。例如,要把data.ui移到表格中,双击它的值“1234”就行了。
![](http://hi.csdn.net/attachment/201201/12/0_1326335365Ttwn.gif)
我们还可以用局部数据模拟的功能,处理各种各样的复杂情形。
![](http://hi.csdn.net/attachment/201201/12/0_13263354103kx3.gif)
例如,以下函数处理的是由界面输入的数据,这也是单元测试的一个难点。可以使用局变数据模拟,把界面输入转换成普通的内部输入。
这个函数的逻辑功能是计算SQL字符串,但计算结果没有输出到外部,这是内部输出,工具也可以判断内部输出是否正确。
![](http://hi.csdn.net/attachment/201201/12/0_1326335518f8id.gif)
下图是测试结果:
![](http://hi.csdn.net/attachment/201201/12/0_1326335569Z0Iz.gif)
内部输入解决之后,无论别人(关联代码),是否存在,是否正确,是否被隔离,都可以完整检测我(当前代码)。检测我是否对所有数据,包括内部输入,都做了正确的分类和处理。
![](http://hi.csdn.net/attachment/201201/12/0_1326335620CyXs.gif)
从而实现单元测试的目标:无论别人怎么样,我总是对的! 如果所有代码单元都做到了这一点,那会怎么样呢?整个项目就没有代码错误。
来看看嵌入式测试。在设备上进行单元测试不仅难度大、成本高,也无法达到应有的效果。如果在设备上测试,设备的一些输出是难于控制的,例如这个例子,假设只有在发生雷击时,获取前车距离的函数才会返回失败,那我们是不是等着雷击呢?
即使不考虑成本,嵌入式单元测试也应该在PC上进行,这样才能做到“我总是对的”。
![](http://hi.csdn.net/attachment/201201/12/0_1326335673686M.gif)
(未完待续)
相关文章推荐
- 单元测试实践的主要问题与解决(6)
- 单元测试实践的主要问题与解决(1)
- 单元测试实践的主要问题与解决(8)
- 单元测试实践的主要问题与解决(3)
- 单元测试实践的主要问题与解决(2)
- 单元测试实践的主要问题与解决(5)
- 单元测试实践的主要问题与解决(3)
- 单元测试实践的主要问题与解决(3)
- 单元测试实践的主要问题与解决(5)
- 单元测试实践的主要问题与解决(4)
- 单元测试实践的主要问题与解决
- 单元测试实践的主要问题与解决(5)
- 单元测试实践的主要问题与解决(6)
- 单元测试实践的主要问题与解决(6)
- 单元测试实践的主要问题与解决(6)
- 单元测试实践的主要问题与解决(4)
- 单元测试实践的主要问题与解决(7)
- 单元测试实践的主要问题与解决(4)
- 单元测试实践的主要问题与解决(8)
- 单元测试实践的主要问题与解决(2)