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