2015-08-20 3 views
0

я пишу блок тест для метода контроллера, который имеет следующую подписьКак получить экземпляр org.springframework.validation.Errors для модульного тестирования

String handlerApplicationRequest(@ModelAttribute("resource") Resource resource, Errors errors, HttpServletRequest request) 

называть этот метод я мой модульного тестирования, т.е. необходимо передать все три аргумента, У меня уже есть экземпляр Resource, для тестирования и я создал экземпляр MockHttpServletRequest для запроса. Но я не знаю, как получить экземпляр org.springframework.validation.Errors. Весенняя документация, я не вижу никакого публичного конструктора или какого-либо статического заводского метода для создания экземпляра этого класса. Код, который я пишу для модульного теста, не является моим кодом, но его документация говорит, что ошибки содержат любые ошибки при обработке запроса. Мой вопрос в том, как я могу получить экземпляр ошибок, чтобы написать мой модульный тест.

ответ

0

Публичных конструкторов нет, потому что org.springframework.validation.Errors - это интерфейс. См. Раздел «Все известные классы реализации» в файле javadoc, чтобы найти реализацию, которую вы можете построить и пройти в свой тест.

Опция, которая наиболее подходит для модульных испытаний, заключается в создании макетной реализации интерфейса с использованием насмешливой структуры (например, или Mockito). Затем вы определяете ожидания против макета, чтобы проверить, что ваш класс под контролем ведет себя правильно. Как правило, это плохая идея для одновременного тестирования нескольких классов, которые, если вы используете реальную реализацию Errors, ваш модульный тест будет связан с реализацией этого интерфейса.

+0

Я даже не смотрел документацию, чтобы убедиться, что это был интерфейс, а не класс. благодаря – ivange

Смежные вопросы