簡體   English   中英

REST Controller 測試:MockMvc.andExpect 不適用於 ENUM

[英]REST Controller test: MockMvc.andExpect doesn't work with ENUM

我正在使用@WebMvcTest 和 MockMvc mockMvc;

我正在嘗試做:

  mockMvc.perform(get("/api/v2/developers/12"))
                    .andExpect(jsonPath("$.sportType").value("FOOTBAL"))

但我得到:

java.lang.AssertionError: JSON path "$.sportType" 
Expected :FOOTBALL
Actual   :FOOTBALL

FOOTBAL - 是枚舉值,我也嘗試使用“FOOTBAL”代替:

.andExpect(jsonPath("$.sportType").value(SportType.FOOTBALL))
//OR
.andExpect(jsonPath("$.sportType").value(String.valueOf(SportType.FOOTBALL)))
//OR
.andExpect(jsonPath("$.sportType").value(Arrays.asList(SportType.FOOTBALL)))

我的 JSON 看起來如何:

{
    "name": "JOHN",
    "sportType": "FOOTBALL"
}

由於響應是 JSON 字符串並且sportType是字符串類型,我建議將其作為字符串而不是枚舉進行比較

andExpect(jsonPath("$.sportType").value("FOOTBALL"))

或者你也可以使用Matchers

andExpect(jsonPath("$.sportType", is("FOOTBALL")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM