Я работаю над проектом, в котором хочу иметь достойную тестовую инфраструктуру. Я использую весеннюю загрузку, что упрощает тестирование отдельных слоев проекта: например
Если я хочу протестировать уровень контроллера, я буду имитировать (с помощью mockito) служебные зависимости контроллера и проверять, будет ли вызываться правильный метод обслуживания для данного http-запроса, и будет ли возвращен ожидаемый статус http. Если я хочу протестировать сервисный уровень, я буду издеваться над зависимостями репозитория и бизнес-логики. И так далее.
В моем проекте я использую весенние валидаторы, чтобы проверить, правильно ли передано тело запроса (с использованием метода @InitBinder я добавляю свои пользовательские валидаторы в WebDataBinder, а с использованием аннотации @Valid эти валидаторы вызываются для проанализированного тело запроса).
Итак, мой вопрос: является ли хорошей практикой имитировать валидаторы и тестировать только логику контроллера (валидаторы будут тестироваться в контексте уровня валидатора)? Я просто не уверен, что лучше, и нормально ли тестировать валидаторы вместе с контроллерами?