我正在练习MockMVC进行休息呼叫单元测试。我们如何测试布尔值,以便结果是真还是假我需要通过测试,我尝试如下,
mockMvc.perform(get("/student/{Id}", 1L)).
.andExpect(status().isOk())
.andExpect(jsonPath("$.isPass", is(true || false)));
另外我有6个值的列表,如何使用列表包含所有类型的方法,
.andExpect(jsonPath("$.subjectList", hasSize(5)))
.andExpect(jsonPath("$.subjectList.name", Matchers.contains("English", "Hindi", "France", "Tamil", "Bengali"))
请提出任何建议!!
答案 0 :(得分:3)
我建议使用hamcrest AnyOf逻辑匹配器
形成Tutorial:
anyOf - 匹配任何匹配器匹配,短路(如Java ||)
所以在你的情况下:
import static org.hamcrest.core.AnyOf.*;
mockMvc.perform(get("/student/{Id}", 1L)).
.andExpect(status().isOk())
.andExpect(jsonPath("$.isPass", anyOf(is(false),is(true))));
.andExpect(jsonPath("$.subjectList.name", anyOf(is("English"),is("Hindi")…)));
使用Junit和一些模拟库来使用hamcrest可能会很棘手 见