软件编程
位置:首页>> 软件编程>> 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
投稿

猜你喜欢

  • 在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家!如何用JAVA实现字符串简单加密解密?为保证用户
  • 通过将PDF格式转换为PDF/A格式,可保护文档布局、格式、字体、大小等不受更改,从而实现文档安全保护的目的,同时又能保证文档可读、可访问。
  • 本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下import java.io.IOException; impor
  • Spring AOP底层原理代理模式一、什么是 AOPAOP 就是面向切面编程,是 OOP(面向对象编程)的延续。利用 AOP 可以对业务逻
  • //构造文件File类File f=new File(fileName);//判断是否为目录f.isDirectory();//获取目录下的
  • System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。一.优点1。支持自
  • 前言我个人觉得,中间件的部署与使用是非常难记忆的;也就是说,如果两次使用中间件的时间间隔比较长,那基本上等于要重新学习使用。所以,我觉得学习
  • java Hibernate多对多映射前言:一、单向多对多    单向多对多的例子用人和职位来举例,一个人可以有多个职位
  • 这篇文章主要介绍了JavaWeb项目Servlet无法访问问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
  • 在gitee上创建springcloud仓库 application.yaml(https方式)server:  por
  • 目录如何实现简化呢?当然,一些常见的方法已经封装在了 Norns.Urd.Extensions.Polly如何启用 Norns.Urd +
  • Java 的线程支持提供了一些便捷的工具方法,通过这些便捷的工具方法可以很好地控制线程的执行。join 线程Thread 提供了让一个线程等
  • using System.Drawing;using System.Drawing.Imaging;using System.IO;usin
  • 本文实例为大家分享了UGUI实现卡片椭圆方向滚动的具体代码,供大家参考,具体内容如下搭建简单的场景运行效果卡片移动动画通过插件DoTween
  • ManualResetEvent表示线程同步事件,可以对所有进行等待的线程进行统一管理(收到信号时必须手动重置该事件)其构造函数为:publ
  • 本文主要讲述运行时类型、对象、线程栈和托管堆之间的相互关系,静态方法、实例方法和虚方法的区别,以及内存的分配和回收。线程栈:在一个进程中可能
  • 理论基础so的加载是一种解析式装载,这与dex有一定区别,dex是先加载进行优化验证生成odex,再去解析odex文件,而so更像边解析边装
  • 一、Shader基础知识1.1、什么是Shader在讲什么是Shader之前我们先看看下面两段代码 这两段代码实现的功能都是提取
  • Android提供了对常用音频和视频格式的支持,它所支持的音频格式有MP3(.mp3)、3GPP(.3gp)、Ogg(.ogg)和WAVE(
  • 介绍超级管理员:系统管理、用户管理、网点管理、运输点管理、快递员管理、网点申请管理(审核)、报价管理(时效报价)等。普通用户:注册登录、个人
手机版 软件编程 asp之家 www.aspxhome.com