Spring MockMvcResultMatchers jsonPath ниже / больше чем

Я использую 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?

1 ответ

Решение

JSON Path value метод может занять org.hamcrest.Matcher в качестве параметра. Так что вы можете использовать GreaterThan учебный класс:

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

Этот класс из org.mockito.internal.matchers пакет.

Вы можете использовать метод betterThan() с hasSize().

В качестве примера вы должны сделать следующее:

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

Вы можете проверить это другими способами org.hamcrest.Matchersкласс отсюда.

Другие вопросы по тегам