什么是Mock?
我想Mock这个词对于经常写单元测试的开发来说肯定不默生。如今在测试驱动开发的思想下,单元测试被推到了一个很重要的位置。因为它是直接能覆盖到所有代码逻辑的最佳测试手段。在单元测试的过程中,复杂业务逻辑需要跟外部资源通信交互,例如获得一个数据库连接对象,例如发送一个HTTP请求并获得实时回复的一些数据等等。当复杂业务从这些与外部对象的交互开始时,单元测试往往需要借助给力的Mock技术,来模拟这些外部环境和对象。最终目的是让待测试业务代码能够顺利的执行下去完成单元测试的验证。因为这样的需求,优秀的Mock单元测试框架也开始流行起来,例如MockITO、PowerMock、Mock Framework等。
Mock在测试中的作用?
Mock技术真的只能发挥在单元测试上么?在“Google如何做测试”一书中,也提到了Google使用Mock的思想,由于测试工作从项目启动之初就已经开展,许多功能代码完成的先后顺序各不相同。也许即使是同一个业务功能,在UI完成了之时,后台还没完成(或者正好相反)。那么一定要等到两者都完成并且联调完成了之后,测试工作才能展