springboot項目編寫測試類,亂碼問題解決

?MockMvc 的默認行為?
MockMvc ?默認使用 ISO-8859-1 解碼響應,而服務端實際返回 UTF-8 編碼數據

Postman 無亂碼是因瀏覽器自動識別編碼,但 MockMvc 需顯式配置。
?過濾器失效場景?
Spring 的 CharacterEncodingFilter ?默認只對 POST 請求生效,對 GET 請求無效

測試環境需手動強制覆蓋編碼設置。

解決方案一:
在測試代碼中強制覆蓋編碼設置。(注釋代碼部分)
解決方案二:
添加測試配置文件,指定編碼

在test的resources中添加application.properties配置文件,添加配置

server.servlet.encoding.force=true
server.servlet.encoding.charset=UTF-8

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Locale;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;@SpringBootTest
@AutoConfigureMockMvc
public class PlateControllerTest {private static final Logger logger = LoggerFactory.getLogger(PlateControllerTest.class);@Autowiredprivate MockMvc mockMvc;@Testvoid testgetAAA() throws Exception {// 發送 GET 請求到 /plate/getAAA 接口,傳入 plateId 參數MvcResult result = mockMvc.perform(get("/plate/getAAA").param("plateId", "1234567")//.characterEncoding("UTF-8")).andExpect(status().isOk()) // 驗證 HTTP 200.andExpect(jsonPath("$.data").exists()) // 驗證響應包含 data 字段.andReturn(); // 獲取返回結果// 打印接口返回結果//String responseContent = result.getResponse().getContentAsString(StandardCharsets.UTF_8);String responseContent = result.getResponse().getContentAsString();logger.info("getAAA接口返回結果: {}", responseContent);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90413.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

打破傳統,開啟 AR 智慧課堂?

在教育領域,AR 智慧課堂宛如一場及時雨,為傳統教育模式帶來了革命性的變革,讓學習變得更加生動有趣、高效互動。通過 AR 技術,抽象的知識瞬間變得鮮活起來,學生們可以在虛擬與現實交織的世界中,探索歷史的長…

熱烈祝賀 Flink 2.0 存算分離入選 VLDB 2025

VLDB 2025 論文熱烈祝賀 Apache Flink 2.0 的重磅研究成果《Disaggregated State Management in Apache Flink 2.0 》被數據庫領域頂級會議 VLDB 2025 正式接收!這項工作由 Apache Flink 社區 聯合 阿里巴巴實時計算 Flink 團隊 以及多位學術界研究人員共同完成&…

蓄電池能量管理matlab的simulink仿真

蓄電池能量管理matlab的simulink仿真模型 AlternatorTableData.mat , 7395 Battery_Management_Lib.mdl , 577258 Readme.txt , 1293 license.txt , 1551 ssc_battery_management.mdl , 221248 ssc_lead_acid_battery_50Ah_ini.m , 1760 ssc_lead_acid_battery_80Ah_ini.m , 1…

MyBatisPlus-03-擴展功能

文章目錄【README】【1】基于MyBatisPlus的代碼生成器【2】MyBatisPlus-DB靜態工具【2.1】使用MyBatisPlus的DB靜態工具查詢單個及多個用戶地址【查詢單個用戶的訪問效果】【查詢多個用戶的訪問效果】【3】邏輯刪除【3.1】代碼實現【4】枚舉處理器【4.1】代碼實現【5】JSON處理…

初識Neo4j之Cypher(三)

目錄 一、介紹 二、語法 1、節點 2、關系 3、屬性 4、模式 一、介紹 Cypher 是 Neo4j 的聲明式查詢語言,兼容 GQL 標準。通過 openCypher 項目,Cypher 以開源方式提供。它類似于 SQL,但專為圖數據優化。 Cypher 直觀且接近自然語言&…

19-C#靜態方法與靜態類

C#靜態方法與靜態類 1.static-靜態方法animal.eat();//直接調用 public class animal {public static void eat()//定義靜態方法{messagebox.show("animal eat");} }2.static-靜態類animal.eat();//直接調用public stat…

基于YOLO的足球檢測Web應用:從訓練到部署的完整實戰

用Python和深度學習技術打造一個完整的足球檢測系統,支持圖片檢測、視頻分析和實時監控。本文帶你從零開始構建一個專業的Web應用。🎯 項目背景 在體育賽事分析和足球訓練中,準確識別和定位足球是一個重要需求。本項目利用YOLO深度學習算法&a…

npm 切換 node 版本 和npm的源

在開發過程中,不同項目可能需要不同版本的 Node.js,同時 于由XX原因,我們需要切換npm的源。這時如果需要切換node版本或者npm的源,我們可以使用以下方法。 使用 nvm 切換 Node 版本 1、安裝 npm install nvm -g2、使用 # 列出所有…

Java學習第二十部分——EasyMock

目錄 一.概述 二.作用 三.工作原理 四.使用示例 五.主要特點 六.適用場景 七.其他模擬框架比較 八.idea簡單項目實戰 1.打開idea創建Java項目,注意構建系統選“Maven” 2.為pom.xml文件添加如下依賴,并重新加載Maven依賴,直至不報錯…

機器學習模型在C++平臺的部署

一、概述機器學習模型的訓練通常在Python環境下完成,而現實生產環境的復雜性和多樣性使得模型的部署成為一個值得關注的重點。不同應用場景下有不同適應的實現方式,這里主要介紹通過一種通用中間格式——ONNX(Open Neural Network Exchange&a…

保姆級安裝 Ruby 環境下載及安裝教程, RubyInstaller下載及安裝教程

一、下載安裝 RubyInstaller 1.打開 RubyInstaller 官網:https://rubyinstaller.org/ 點擊跳轉, 官網界面如下圖: 點擊下載最新的 RubyDevkit 版本(如 RubyDevkit 3.4.X (x64) )。如下圖所示: 注意點:如果…

SQL 一鍵生成 Go Struct!支持字段注釋、類型映射、結構體命名規范

SQL 一鍵生成 Go Struct!支持字段注釋、類型映射、結構體命名規范 在 Golang 開發中,尤其是操作數據庫時,我們經常會遇到這種場景: ? 拿到數據庫建表 SQL,卻要手動寫 Go struct? 字段幾十個、類型復雜,…

Web 前端框架選型:React、Vue 和 Angular 的對比與實踐

Web 前端框架選型:React、Vue 和 Angular 的對比與實踐 選擇前端框架就像選擇一個長期合作伙伴。錯誤的選擇可能會讓你的項目在未來幾年內背負沉重的技術債務,而正確的選擇則能讓開發效率飛速提升。 經過多年的項目實踐,我發現很多新人在框架…

C# 值拷貝、引用拷貝、淺拷貝、深拷貝

值拷貝定義:直接復制變量的值,適用于基本數據類型(如int, float, char等)。在 C# 中,值類型(基本數據類型和結構體)默認使用值拷貝。特點:創建原始值的完全獨立副本,修改…

深度學習圖像分類數據集—百種鳥類識別分類

該數據集為圖像分類數據集,適用于ResNet、VGG等卷積神經網絡,SENet、CBAM等注意力機制相關算法,Vision Transformer等Transformer相關算法。 數據集信息介紹:525種鳥類識別分類 訓練數據集總共有84635張圖片,每個文件夾…

零基礎 “入坑” Java--- 八、類和對象(一)

文章目錄一、初識面向對象二、類的定義和使用1.認識類2.類的定義格式三、類的實例化四、this引用五、對象的構造及初始化1.有關初始化2.構造方法3.就地初始化一、初識面向對象 Java是一門純面向對象的語言(OOP),在面向對象的世界里&#xff…

數字孿生技術引領UI前端設計新篇章:智能物聯網的深度集成

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言:數字孿生與物聯網的共生革命在智能設備爆發式增長的今天,傳統…

代碼審計-shiro漏洞分析

一、關于shiro介紹 簡單講,shiro是apache旗下的一個Java安全框架,輕量級簡單易上手,框架提供很多功能接口,常見的身份認證 、權限認證、會話管理、Remember 記住功能、加密等等。 二、漏洞分析 1.CVE-2019-12422-shiro550 漏洞原理…

EF提高性能(查詢禁用追蹤)(關閉延遲加載)

EF默認是支持延遲加載的,在加載一個表的數據時,會把關聯表的數據一并加載,這樣會影響性能。 一般建議關閉延遲加載可以提高EF加載的性能。還有其他方法提高性能(查詢禁用追蹤) 如果要實現延遲加載,必須滿足…

Leetcode+JAVA+貪心III

134.加油站在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。給定兩個整數數組 gas 和 …