MockMVC - Как протестировать публикацию на конечной точке, не создавая фактической публикации mockMvc?

У меня есть конечная точка REST, которую я хочу протестировать. Попадание в эту конечную точку с помощью запроса POST загружает файл в удаленное репозиторий git. Я пытаюсь протестировать POST-вызовы этой конечной точки с помощью mockMvc (я хочу видеть только статус возврата «isOk ()») - я не хочу, чтобы конечная точка действительно была поражена моими jUnits, так как это приведет к появлению ненужных файлов будут загружены в репо, и их нужно будет очистить позже.

Моя проблема в том, что mockMvc выполняет фактический вызов POST для конечной точки! с! Я думал, это все издеваются ?! Возможно ли, чтобы mockMvc возвращал isOk () без фактического вызова конечной точки и отправки файлов в мое удаленное репо?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
509
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Mock MVC - это всего лишь инструмент, позволяющий вызывать методы, отмеченные @GetMapping, @PostMapping и т. д.

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

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

Другие вопросы по теме