分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

使用MockMvc测试controller

发布时间:2023-09-06 02:07责任编辑:沈小雨关键词:暂无标签

  之前我们测试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引入的新特性,记录下来仅作备忘,个人觉得在条件允许的情况下还是比较乐意使用浏览器来测试的;

使用MockMvc测试controller

原文地址:https://www.cnblogs.com/darling2047/p/9591533.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved