MockMvc controller单元测试
程序员文章站
2022-04-30 09:43:28
...
注意:
1、入参是数组是,直接用字符串表示,不需要拼接成json格式或者toString,会自动解析。如: .param(“ids”, “1607928218234,1607928439133”)//传递数组
2、response打印乱码,需要设置相应编码。如:resultActions.andReturn().getResponse().setCharacterEncoding(“UTF-8”)
1、springboot + maven 项目,添加依赖坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2、开发RESTFUL接口,此处省略
3、开发单元测试类
4、测试类引入注解
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@WebAppConfiguration
5、初始化MockMvc对象
/**
* 对Http请求的模拟
*/
private MockMvc mvc;
/**
* session会话
*/
private MockHttpSession session;
/**
* web应用上下文
*/
@Autowired
private WebApplicationContext wac;
@Before
public void setupMockMvc() {
mvc = MockMvcBuilders.webAppContextSetup(wac).build(); //初始化MockMvc对象
session = new MockHttpSession();
/*
* session用户信息
* User user =new User("root","root");
* session.setAttribute("user",user); //拦截器那边会判断用户是否登录,所以这里注入一个用户
*/
}
6、发送请求,
//post请求
@Test
public void queryTransportPlanList() throws Exception {
String json = "{ \"goodsCode\": \"煤\"}";//入参对象字符串
ResultActions resultActions = mvc.perform(MockMvcRequestBuilders.post("/query")//请求方式
.accept(MediaType.APPLICATION_JSON)//accept指定客户端能够接收的内容类型
.contentType(MediaType.APPLICATION_JSON)//请求参数类型
.content(json.getBytes())//参数
.session(session)); //session内容
resultActions.andReturn().getResponse().setCharacterEncoding("UTF-8");//response设置编码
resultActions.andExpect(MockMvcResultMatchers.status().isOk())//添加断言,是否成功
.andDo(MockMvcResultHandlers.print());//打印结果
}
//get请求
@Test
public void cancelTranTransportPlan() throws Exception {
ResultActions resultActions = mvc.perform(MockMvcRequestBuilders.get("/cancel")//请求方式
.param("ids", "1,2")//传递数组
.accept(MediaType.APPLICATION_JSON)//指定请求的Accept头信息;
.contentType(MediaType.APPLICATION_JSON)//指定请求的contentType头信息;
.session(session)); //session内容
resultActions.andReturn().getResponse().setCharacterEncoding("UTF-8");//response设置编码
resultActions.andExpect(MockMvcResultMatchers.status().isOk())//添加断言,是否成功
.andDo(MockMvcResultHandlers.print());//打印结果
}
上一篇: SSH配置文件
下一篇: SSH环境搭建(一)整合SSH配置文件
推荐阅读
-
使用 xUnit 编写 ASP.NET Core WebAPI单元测试
-
VS2012开启右键菜单创建单元测试选项(Create Unit Tests) 的方法
-
Laravel 框架控制器 Controller原理与用法实例分析
-
PHPUnit 单元测试安装与使用入门教程
-
详解python单元测试框架unittest
-
详解Asp.Net MVC——控制器与动作(Controller And Action)
-
PHPUnit + Laravel单元测试常用技能
-
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
-
java-jsp springmvc-controller 传值到页面的方法
-
eclipse创建testng单元测试实例教程