摘要: 我们应该如何以及在哪里使用Mock对象呢?一般来说,对于目标对象中的合作者对象,在测试时如果其状态或行为的实现严重地依赖外部资源(比如数据持久化中的DAO,比如负责发送电子邮件的类),或者团队并行开发时,目标对象的合作者对象并没有实现(比如J2EE中,横向分工时,负责Action的调用Service,负责Service调用DAO时,相应的Service及DAO没有实现),这时我们就需要模仿这些类。其实,在做J2EE时,传统的N层架构中,我们都是面向接口编程的,我们定义了DAO接口,我们定义了Service接口,这样做的优点就是我们在测试时可以构造实现接口的Mock类。这里不得不提依赖注入,通过依赖注入,我们才能在测试时set Mock对象。这也说明,为了方便测试,我们不得不一步一步重构代码,而模式就在重构中自然地产生了。
阅读全文