以前咱们测试controller的时候仅仅是做为一个pojo来进行简单的测试,spring3.2后咱们能够按照控制器的方式来测试Spring MVC的controller了,这样的话在测试控制器的时候,就没有必要再启动Web服务器和Web浏览器了,下面是测试代码:web
import com.darling.controller.TestController; import org.junit.Test; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; /** * @author * @date 2018/9/5 11:17 * @description 测试Spring 3.2新增的新的测试特性 */ public class TestDemo { @Test public void testTestController() throws Exception{ TestController controller = new TestController(); MockMvc mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/test/testJsp"); ResultActions actions = mockMvc.perform(builder); actions .andExpect(MockMvcResultMatchers.view().name("index")); } }
由代码能够看出咱们向TestController发出了一个/testJsp的请求并断言结果视图的名称为index;它首先传递一个TestController实例到MockMvcBuilders.standaloneSetup()并调用build()来构建MockMvc实例。而后它使用MockMvc实例来执行针对“/”的GET请求并设置指望获得的视图名称。若是断言的视图名与controller返回的不一致则抛出异常spring
这种测试时spring3.2引入的新特性,记录下来仅做备忘,我的以为在条件容许的状况下仍是比较乐意使用浏览器来测试的;浏览器