SpringMVC / mockMVC / jsonpath сравнить список строк

В настоящее время я пишу некоторые модульные тесты для проекта Spring MVC. Поскольку возвращаемый тип мультимедиа - JSON, я пытаюсь использовать jsonPath, чтобы проверить, возвращены ли правильные значения.

Проблема у меня заключается в том, чтобы проверить, содержит ли список строк правильные (и только правильные) значения.

Мой план был:

Убедитесь, что список имеет правильную длинуДля каждого элемента, которыйдолжны быть возвращены, проверьте,в списке

к сожалению, ни одна из этих вещей, кажется, не работает.

Вот'Соответствующая часть моего кода:

Collection correctRoles = magicDataSource.getRoles();

ResultActions actions = this.mockMvc.perform(get("/accounts/current/roles").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) // works
.andExpect(jsonPath("$.data.roles").isArray()) // works
.andExpect(jsonPath("$.data.roles.length").value(correctRoles.size())); // doesn't work

for (AuthorityRole role : correctRoles) // doesn't work
  actions.andExpect(jsonPath("$.data.roles[?(@=='%s')]", role.toString()).exists());

Только первые дваожидания» (isOk & isArray) работаем. Остальные (по длине и содержанию) я могу крутить и поворачивать как хочу, онине дает мне никакого полезного результата.

Какие-либо предложения?

Ответы на вопрос(2)

Ваш ответ на вопрос