您的位置:首页 > 数据库

单元测试实践的主要问题与解决(7)

2012-01-12 10:36 155 查看
(承上篇)

    这个底层函数返回的是一个对象指针,如何模拟呢?双击函数名,打开底层模拟器。
   


    首先,在前置代码中定义对象并初始化。然后,在模拟值中填写这个对象的地址。
   


    这是模拟的结果。
   


    复杂对象的数据一样可以移到表格中,这时,要移到表格中的不是对象本身,而是对象中包含的数据。例如,要把data.ui移到表格中,双击它的值“1234”就行了。
   


    我们还可以用局部数据模拟的功能,处理各种各样的复杂情形。
   


    例如,以下函数处理的是由界面输入的数据,这也是单元测试的一个难点。可以使用局变数据模拟,把界面输入转换成普通的内部输入。
    这个函数的逻辑功能是计算SQL字符串,但计算结果没有输出到外部,这是内部输出,工具也可以判断内部输出是否正确。   


    下图是测试结果:
   


     内部输入解决之后,无论别人(关联代码),是否存在,是否正确,是否被隔离,都可以完整检测我(当前代码)。检测我是否对所有数据,包括内部输入,都做了正确的分类和处理。
   


    从而实现单元测试的目标:无论别人怎么样,我总是对的! 如果所有代码单元都做到了这一点,那会怎么样呢?整个项目就没有代码错误。
    来看看嵌入式测试。在设备上进行单元测试不仅难度大、成本高,也无法达到应有的效果。如果在设备上测试,设备的一些输出是难于控制的,例如这个例子,假设只有在发生雷击时,获取前车距离的函数才会返回失败,那我们是不是等着雷击呢?
    即使不考虑成本,嵌入式单元测试也应该在PC上进行,这样才能做到“我总是对的”。   


(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息