zoukankan      html  css  js  c++  java
  • 通过Mock测试控制器

     

    测试控制器最直接的办法可能就是构建并部署应用,然后通过浏览器对其进行访问,但是自动化测试可能会给你更快的反馈和更一致的独立结果。所以,让我们编写一个针对HomeController的测试。

    Spring现在包含了一种mock Spring MVC并针对控制器执行HTTP请求的机制。这样的话,在测试控制器的时候,就没有必要再启动Web服务器和Web浏览器了。

     

     

    控制器:

    package spittr.web;
    
    import static org.springframework.web.bind.annotation.RequestMethod.*;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("/")
    public class HomeController {
    
      @RequestMapping(method = GET)
      public String home(Model model) {
        return "home";
      }
    
    }

    测试:

    package spittr.web;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
    import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*;
    
    import org.junit.Test;
    import org.springframework.test.web.servlet.MockMvc;
    
    
    
    public class HomeControllerTest {
    
      @Test
      public void testHomePage() throws Exception {
    
        HomeController controller = new HomeController();
        MockMvc mockMvc = standaloneSetup(controller).build();  //搭建MockMvc
        mockMvc.perform(get("/"))                   //  对“/”执行get请求
               .andExpect(view().name("home"));   //预期得到home视图
      }
    
    }

    发起了对“/”的GET请求,并断言结果视图的名称为home。它首先传递一个HomeController实例到MockMvcBuilders.standaloneSetup()并调用build()来构建MockMvc实例。然后它使用MockMvc实例来执行针对“/”的GET请求并设置期望得到的视图名称。

  • 相关阅读:
    系统建模之UML状态图[转载]
    [软件工程]TO B型IT软件企业在工程管理角度所存在的诸多问题
    [Linux]异常配置专题之重复配置的有效性:系统/环境变量 | hosts
    将本地图片Base64(代码摘抄)
    将网络图片Base64(摘抄笔记)
    Cordova基本使用(三)
    Tushare环境搭建
    用Python做量化交易Tushare平台获取数据
    java将ftl格式模板输出为word模板
    oracle数据库的row_num() over()使用方法
  • 原文地址:https://www.cnblogs.com/lvhouhou/p/13375566.html
Copyright © 2011-2022 走看看