一般测试驱动开发项目中,我们会在Maven中建立一个项目文件和一个一一对应的测试项目文件。每写好一个模块,先对其进行单元测试,再集成到现有的系统中。
针对Controller、Service、Dao三层架构来说,我们最常对Service和Dao进行单元测试。然而Controller的测试,很多人还是启动Tomcat,进行接口测试,这样不紧需要等待很长的编译部署时间而且无法逐个Controller功能进行单独测试,因此特意总结Controller层的单元测试。
技术选型:SpringMVC框架 。SpringMVC已经继承了单元测试的类
1.创建普通类文件
2.引入Spring单元测试注释
@RunWith(SpringJUnit4ClassRunner.class) //此处调用Spring单元测试类
@WebAppConfiguration //调用javaWEB的组件,比如自动注入ServletContext Bean等等
@ContextConfiguration(locations = {"classpath:spring-context.xml","classpath:spring-mvc.xml"})//加载Spring配置文件
public class HealthArticleControllerTest {...代码片段 }//测试代码类
@WebAppConfiguration如果不加的话,是没法调用WEB的一些特性的。经常会被遗忘掉。。。
@ContextConfiguration中,需要把所有Spring的配置文件全部加载进来,因为有的项目中Spring 的xml配置是分拆的。 此处的xml是放在resources的根目录中。
3.引入spring注解后,Controller的单元测试需要模拟Server的运行,需要在class中进行WEB环境的初始化。