软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

作者:牛哄哄的柯南  发布时间:2021-11-26 17:57:22 

标签:SpringBoot,Controller,单元测试,乱码

Controller代码


package com.keafmd.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
* Keafmd
*
* @ClassName: HelloController
* @Description:
* @author: 牛哄哄的柯南
* @Date: 2021-04-02 9:42
* @Blog: https://keafmd.blog.csdn.net/
*/
@RestController
public class HelloController {

@RequestMapping("/hello")
Map hello(){
 Map map = new HashMap();
 map.put("keafmd","牛哄哄的柯南");
 map.put("success",true);
 return map;

}
}

单元测试代码


package com.keafmd;

import com.keafmd.SpringBoot02Application;
import com.keafmd.controller.HelloController;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

/**
* Keafmd
*
* @ClassName: MvcTest
* @Description:
* @author: 牛哄哄的柯南
* @Date: 2021-04-02 10:59
* @Blog: https://keafmd.blog.csdn.net/
*/
@SpringBootTest(classes = SpringBoot02Application.class)
@AutoConfigureMockMvc //相当于是使用 context 上下文构造一个 mvc对象
public class MvcTest {

//模拟访问 Controller
@Autowired
MockMvc mvc;

@Test
public void test() throws Exception {
 MvcResult result = mvc.perform(
   MockMvcRequestBuilders.get("/hello").
     accept(MediaType.APPLICATION_JSON)).
   andExpect(MockMvcResultMatchers.status().isOk()).
   andDo(MockMvcResultHandlers.print()).andReturn();

}
}

测试结果

SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

乱码解决

把注解替换为:↓
@RequestMapping(value = "/hello",produces = {"application/json;charset=UTF-8"})

HelloController:


package com.keafmd.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
* Keafmd
*
* @ClassName: HelloController
* @Description:
* @author: 牛哄哄的柯南
* @Date: 2021-04-02 9:42
* @Blog: https://keafmd.blog.csdn.net/
*/
@RestController
public class HelloController {

@RequestMapping(value = "/hello",produces = {"application/json;charset=UTF-8"})
//@RequestMapping("/hello")
Map hello(){
 Map map = new HashMap();
 map.put("keafmd","牛哄哄的柯南");
 map.put("success",true);
 return map;

}
}

解决乱码后的效果:

SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

来源:https://keafmd.blog.csdn.net/article/details/115395273

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com