zoukankan      html  css  js  c++  java
  • 使用MockMvc测试controller

      之前我们测试controller的时候仅仅是作为一个pojo来进行简单的测试,spring3.2后我们可以按照控制器的方式来测试Spring MVC的controller了,这样的话在测试控制器的时候,就没有必要再启动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返回的不一致则抛出异常

      这种测试时spring3.2引入的新特性,记录下来仅作备忘,个人觉得在条件允许的情况下还是比较乐意使用浏览器来测试的;

  • 相关阅读:
    最牛B的编码套路
    查看端口号
    一个电脑 两个显示屏
    如何修改报表平台中数据决策系统登陆地址
    MTK+Android编译
    报表参数控件和报表内容自动居中设置方法
    如何把报表放到网页中显示(Web页面与报表简单集成例子)
    报表与微信公众号(企业号)集成方案
    在开发过程中调试报表插件详细教程
    电量检测芯片BQ27510使用心得
  • 原文地址:https://www.cnblogs.com/darling2047/p/9591533.html
Copyright © 2011-2022 走看看