与传统的Java EE开发相比,依赖注入应该使你的代码对容器的依赖性降低。构成应用程序的POJO应该在JUnit或TestNG测试中可测试,对象使用new运算符实例化,不使用Spring或任何其他容器。你可以使用模拟对象(与其他有价值的测试技术结合使用)来单独测试代码。如果你遵循Spring的体系结构建议,那么代码库的干净分层和组件化便于单元测试。例如,你可以通过存根或模拟DAO或存储库接口来测试服务层对象,而无需在运行单元测试时访问持久数据。
真正的单元测试通常运行得非常快,因为没有要设置的运行时基础结构。强调真正的单元测试作为开发方法的一部分可以提高你的工作效率。你可能不需要测试章节的这一部分来帮助你为基于IoC的应用程序编写有效的单元测试。但是,对于某些单元测试场景,Spring Framework提供了模拟对象和测试支持类,本章将对其进行介绍。