近日接手一个Unit Test 编写的活,因为之前的开发过程中没有编写相应的Test Code, 在项目开发的后期需要完善之。
在此之前,我只做过很少一部分关于JUnit 的工作,而目前面对的代码量很大,需要深入测试,所以有必要从头开始认真学习一下Unit Test 了。在学习的过程中我找到一个有趣的概念 Test Double. (双测试???),再深入其中才发现自己是多么的幼稚:原来特技替身演员的英文说法是 'stunt double", 那么对应到这里的Test Double就是测试替身,什么测试还有替身,对,这里的替身就是用来代替那些被测试代码依赖的对象模拟。
Test Double is a generic term for any case where you replace a production object for testing purposes. [1] 测试替身是,在任何情况下,为了测试目的而替换掉相应产品对象的通用术语。
按照[1] 的内容,现有的测试替身有以下几种类型。
- Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.