[英]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.