Spring MockMvcResultMatchers jsonPath lower/greater 比

Spring MockMvcResultMatchers jsonPath lower/greater than

我正在使用 MockMvcResultMatchers 来测试我的控制器 类。

这是一个示例代码

        RequestBuilder request = get("/employee/")
            .contentType(MediaType.APPLICATION_JSON)
            .accept(APPLICATION_JSON_UTF8);

        mockMvc
            .perform(request)
            .andExpect(status().isOk())
            .andExpect(jsonPath("$.total").exists());

但是我如何比较 $.total 值与数字?

我的意思是,有没有办法找出 $.total > 0?

json路径value方法可以将org.hamcrest.Matcher作为参数。所以你可以使用 GreaterThan class:

jsonPath("['key']").value(new GreaterThan(1))

这个 class 来自 org.mockito.internal.matchers 包。

您可以将 greaterThan() 方法与 hasSize() 一起使用。

举个例子,你应该这样做:

.andExpect(jsonPath("$.result", hasSize(greaterThan(0))))

你可以看看hereorg.hamcrest.Matchersclass的其他方法。