久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何使用 mockMvc 檢查響應正文中的 JSON

How to check JSON in response body with mockMvc(如何使用 mockMvc 檢查響應正文中的 JSON)
本文介紹了如何使用 mockMvc 檢查響應正文中的 JSON的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

這是我在控制器中的方法,由 @Controller

This is my method inside my controller which is annotated by @Controller

@RequestMapping(value = "/getServerAlertFilters/{serverName}/", produces = "application/json; charset=utf-8")
    @ResponseBody
    public JSONObject getServerAlertFilters(@PathVariable String serverName) {
        JSONObject json = new JSONObject();
        List<FilterVO> filteredAlerts = alertFilterService.getAlertFilters(serverName, "");
        JSONArray jsonArray = new JSONArray();
        jsonArray.addAll(filteredAlerts);
        json.put(SelfServiceConstants.DATA, jsonArray);
        return json;
    }

我期待 {"data":[{"useRegEx":"false","hosts":"v2v2v2"}]} 作為我的 json.

I am expecting {"data":[{"useRegEx":"false","hosts":"v2v2v2"}]} as my json.

這是我的 JUnit 測試:

And this is my JUnit test:

@Test
    public final void testAlertFilterView() {       
        try {           
            MvcResult result = this.mockMvc.perform(get("/getServerAlertFilters/v2v2v2/").session(session)
                    .accept("application/json"))
                    .andDo(print()).andReturn();
            String content = result.getResponse().getContentAsString();
            LOG.info(content);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

這是控制臺輸出:

MockHttpServletResponse:
              Status = 406
       Error message = null
             Headers = {}
        Content type = null
                Body = 
       Forwarded URL = null
      Redirected URL = null
             Cookies = []

甚至 result.getResponse().getContentAsString() 也是一個空字符串.

Even result.getResponse().getContentAsString() is an empty string.

有人可以建議如何在我的 JUnit 測試方法中獲取我的 JSON,以便我可以完成我的測試用例.

Can someone please suggest how to get my JSON in my JUnit test method so that I can complete my test case.

推薦答案

我使用 TestNG 進行單元測試.但是在 Spring Test Framework 中,它們看起來都很相似.所以我相信你的測試如下所示

I use TestNG for my unit testing. But in Spring Test Framework they both looks similar. So I believe your test be like below

@Test
public void testAlertFilterView() throws Exception {
    this.mockMvc.perform(get("/getServerAlertFilters/v2v2v2/").
            .andExpect(status().isOk())
            .andExpect(content().json("{'data':[{'useRegEx':'false','hosts':'v2v2v2'}]}"));
    }

如果你想檢查檢查 json 鍵和值,你可以使用 jsonpath.andExpect(jsonPath("$.yourKeyValue", is("WhatYouExpect")));

If you want check check json Key and value you can use jsonpath .andExpect(jsonPath("$.yourKeyValue", is("WhatYouExpect")));

您可能會發現content().json() 無法解決請添加

You might find thatcontent().json() are not solveble please add

導入靜態 org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;

這篇關于如何使用 mockMvc 檢查響應正文中的 JSON的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to mock super reference (on super class)?(如何模擬超級參考(在超級類上)?)
Java mock database connection(Java 模擬數據庫連接)
Mockito ClassCastException - A mock cannot be cast(Mockito ClassCastException - 無法投射模擬)
Set value to mocked object but get null(將值設置為模擬對象但獲取 null)
How to mock DriverManager.getConnection(...)?(如何模擬 DriverManager.getConnection(...)?)
Mockito; verify method was called with list, ignore order of elements in list(模擬;使用列表調用驗證方法,忽略列表中元素的順序)
主站蜘蛛池模板: 天天综合网91 | 爱操av| 欧美一级艳情片免费观看 | 欧美一级视频在线观看 | 日本福利一区 | 久久精品国产亚洲夜色av网站 | 日本亚洲欧美 | 亚洲一区二区三区在线视频 | 国产精品揄拍一区二区 | 国产91黄色 | 国产成人jvid在线播放 | 天天干免费视频 | 国产精品一区久久久 | 国精品一区 | 久久成人国产精品 | 在线观看深夜视频 | 亚洲精品视频在线看 | 综合在线视频 | 国产综合第一页 | 久草免费在线视频 | 免费观看a级毛片在线播放 黄网站免费入口 | 毛片99| 国产一二三视频在线观看 | 精品欧美一区二区中文字幕视频 | 一本一道久久a久久精品蜜桃 | 韩日中文字幕 | 天天影视综合 | www亚洲精品 | 日一日操一操 | 国产精品自拍视频 | 久久久91 | 精品国产乱码久久久久久蜜退臀 | 欧美在线视频一区 | 国产精品中文在线 | 国产成人精品一区二区三区四区 | 一级片子 | 精品一区二区三区在线视频 | xx性欧美肥妇精品久久久久久 | 黑人巨大精品欧美黑白配亚洲 | 亚洲欧美激情精品一区二区 | 欧美日韩在线播放 |