Я пытаюсь исправить очень старый тест, и я считаю, что лучший подход к исправлению - это избегать вызова метода X, который не имеет ничего общего с реальной логикой теста c. Ситуация следующая
Экземпляр контроллера тестируется с помощью Mock MVC. Запрос передается и обрабатывается экземпляром контроллера, а затем, в зависимости от ответа, я делаю утверждения. Во время обработки запроса контроллер вызывает сам метод X - и я хочу пропустить реальные логики c метода X (или просто вместо этого вернуть некоторые ложные данные).
Теперь я попытался шпионить за экземпляр и его метод перед началом обработки, и выполните
doReturn(MockData).when(controllerInstance).methodX();
Кажется, что он работает так, как и ожидалось в Scope класса Testing (поэтому его внешний вызов так, как: controllerInstance.methodX () работает, как я и ожидал) , но когда запрос пройден (и исполняется реальный код контроллера), метод X вызывается из самого контроллера, и это ДА, выполняющий фактическую логику c, которую я хотел избежать.
Я не уверен, что что-то пропустил или просто Mockito.spy () не работает так, как я ожидаю (внутренние и внешние вызовы)
Я считаю, что этого объяснения высокого уровня будет достаточно, чтобы описать мою проблему , но если требуется более подробная информация, пожалуйста, дайте мне знать. Заранее спасибо