Spring .andExpect () MockMvc Logical || Эквивалент

Я бы хотел написать что-то вроде этого:

mvc.perform(post(url))
    .andExpect(model().hasErrors() || model().attribute("errors", isNotNull()));

Чтобы проверить, есть ли в модели ошибки BindingResult из аннотации @Valid в методе контроллера или на страницу была добавлена ​​одна из моих собственных ошибок. Это возможно?

Я думаю, что что-то вроде "Хамкреста" anyOf() могло бы быть тем, что я хочу, но я не могу заставить это работать.


person Adam Beddoe    schedule 29.08.2018    source источник
comment
Альтернативой тому, что я делаю, является добавление всех ошибок к результату привязки, о чем я не знал, что вы можете сделать: bindingResult.addError(new ObjectError("Error", "Description.")); Тем не менее, я все же хотел бы знать, как сделать это ИЛИ в тестах для дальнейшего использования.   -  person Adam Beddoe    schedule 30.08.2018


Ответы (1)


Если вы хотите просто проверить, есть ли ошибка при вызове URL-адреса, вы можете просто проверить статус возвращаемого ответа.

Если вы просто хотите проверить, выдает ли страница ошибку, попробуйте следующий код: -

mvc.perform(post(url))
    .andExpect(status().is5xxServerError());

А также вы можете написать свою собственную ошибку, которая выдает 5xx код состояния.

person iamrohit    schedule 29.08.2018
comment
Это хорошее предложение, однако оно проверяет что-то немного другое: правильный HTTP-код может быть выдан без отображения ошибок на странице. - person Adam Beddoe; 30.08.2018