分类:
2008-10-15 13:45:00
本文是Productive with Ruby系列文章的第二篇,通过上一篇的介绍,我想大家对如何利用Ruby进行单元有了一个基本的了解,从这里开始,我将和大家一起讨论一些利用Ruby进行单元时的高级话题。
通常,新技术的引入只能降低解决问题的难度,而不是消除问题本身!
通过Ruby我们可以更高效的处理数据准备的问题,但是真实的世界并不那么简单!随着测试的深入,我们会越发的感觉一不小心就挣扎在“依赖”的原始丛林 中!有时候似乎需要加入无数的jar包,初始化所有的组件,配置完一切的数据库、及网络的关系,才能开始一小段简单的测试。更痛苦的是这一切是如此 的脆弱,仅仅是某人在数据库中多加了一条数据或者更改了一部分环境配置,你苦心构建的所有测试就全部罢工了!多少次,你仰天长叹:“神啊!救救我 吧……”。可神在那里呢?
引入Ruby进行Mock测试可以有效简化单元测试时对各种环境的依赖,但是Mock也有Mock自己的问题,例如,它需要你对被测试类的内部细节有一定 的了解,毕竟利用Mock技术进行测试属于白盒测试。当被测试类的内部实现有所改变而外部接口未发生变化时,原本不该出错的测试方法依旧有被打破的风险。