95shuma / crm

3 stars 0 forks source link

Изучение тестов на валидацию #69

Closed 95shuma closed 4 years ago

95shuma commented 4 years ago
urmat-mederbekov commented 4 years ago

потрачено 10 часов, так как наш проект много чем отличаеться от примеров на сайтах, тем что наш проект использует дто и проверка идет в контроллере где в любом случае будет 302(ридайрект). вот поэтому многие изученные материалы не подходили, не работали

изученные материалы:

http://useof.org/java-open-source/org.springframework.validation.BindingResult https://blog.codeleak.pl/2012/03/how-to-method-level-validation-in.html https://stackoverflow.com/questions/38881233/java-test-with-expected-exception-fails-with-assertion-error https://stackoverflow.com/questions/24166167/java-lang-assertionerror-content-type-not-set-spring-controller-junit-tests/24173196 https://stackoverflow.com/questions/52001043/how-to-mock-bindingresult-in-spring-boot-test https://www.viralpatel.net/spring-mvc-flash-attribute-example/ https://www.baeldung.com/spring-web-flash-attributes https://www.baeldung.com/spring-response-entity https://www.baeldung.com/javax-validation https://www.javatpoint.com/spring-mvc-validation

а также перечитал ссылки в тикете 64

Screenshot_1

попытался проверить контроллеры таким образом но позже выяснилось что тест проверяет не формы а модели. что нам не подходит.

Screenshot_2

попробовал при проверке контроллера получить атрибут errors который хранит ошибки, но mvcResult.getFlashMap().containsKey("errors"); всегда будет true, тем более, ес не ошибаюсь после ридайекта он удаляется. в идеале было бы хорошо если через mvcResult.getResponse()); получить errors но его там нет

Screenshot_3 здесь тоже поискал атрибут errors не нашел

вывод: чтобы проверить формы надо проверять обьектом Validator. таким образом можно проверить кол.во ошибок, сообщении ошибок и нужную аннотацию

вот пример:

Screenshot_4