在使用TDD开发时,经常会遇到需要被测对象需要依赖其他子系统的情况,但是你希望将测试代码跟依赖项隔离,以保证测试代码仅仅针对当前被测对象或方法展开,这时候你需要的是测试替身.测试替身可以分为四类:- 虚设替身:只传递但是不会使用到的对象,一般用于填充方法的参数列表- 存根替身:总是返回相同的预设响应,其中可能包括一些虚设状态- 伪装替身:可以取代真实版本的可用版本(比真实版本还是会差很多)- 模拟替身:可以表示一系列期望值的对象,并且可以提供预设响应Java世界中实现模拟替身的第三方工具非常多,