测试是开发高质量软件的重要一环。没有好的测试,你永远无法保证应用程序能像期望的那样运行。
单元测试专注于单一组件或组件中的一个方法,此处并不一定要使用Spring。Spring提供了一些优势和技术——松耦合、依赖注入和接口驱动设计。这些都简化了单元测试的编写。但Spring不用直接涉足单元测试。
集成测试会涉及众多组件,这时就需要Spring帮忙了。实际上,如果Spring在运行时负责拼装那些组件,那么Spring在集成测试里同样应该肩负这一职责。
Spring Framework以JUnit类运行器的方式提供了集成测试支持,JUnit类运行器会加载Spring应用程序上下文,把上下文里的Bean注入测试。Spring Boot在Spring的集成测试之上又增加了配置加载器,以Spring Boot的方式加载应用程序上下文,包括了对外置属性的支持和Spring Boot日志。
Spring Boot还支持容器内测试Web应用程序,让你能用和生产环境一样的容器启动应用程序。这样一来,测试在验证应用程序行为的时候,会更加接近真实的运行环境。
此时我们已经构建了一个相当完整的应用程序(虽然有点简单),它利用Spring Boot的起步依赖和自动配置来处理低级工作,让我们专心开发应用程序。我们也看到了如何使用Spring Boot的支持来测试应用程序。在后续几章里,我们会看到一些不同的东西,了解让Spring Boot应用程序开发更加简单的Groovy。在第5章,我们会先了解Grails框架的一些特性,看看它们在Spring Boot中的用途。