Пропуск отправки одного из параметров метода в Junit

Я вызываю один общедоступный метод в своем JUnit и пропускаю вызов частного метода, который вызывается общедоступным.

SampleService sampleServiceSpy = Mockito.spy(sampleService); // I have reference to it through @InjectMocks

String str = Mockito.doReturn("Hiii").when(sampleServiceSpy ).sendRequestToAnotherComponent(<ARG1>,"?",<ARG3>);

String res = sampleServiceSpy.processRequest(<ARG1>, <ARG2>);

Здесь processRequest() - это общедоступный метод, а частный метод - sendRequestToAnotherComponent(), который я пропускаю, но проблема в том, что этот метод ожидает второй аргумент в качестве пути к каталогу, который представляет собой случайный UUID, генерируемый каждый раз по-разному, поэтому я не могу издеваться над ним. (В примере кода отображается как ?)

Есть ли способ передать любое значение и пропустить этот метод?

Я проверил, что Mockito.anyString() используется для создания фиктивных объектов и, следовательно, не может использовать его в этом тестовом примере.

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

Ответы 1

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

Чтобы ответить на ваш прямой вопрос - используйте сопоставители - например:

 Mockito.doReturn("Hiii").when(sampleServiceSpy).sendRequestToAnotherComponent(eq(<ARG1>),any(UUID.class), eq(<ARG3>));

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

Это сработало, раньше я не использовал Matchers со всеми аргументами, что похоже на правило Thumb. Спасибо Эндрю за помощь.

Jeetendra Ahuja 03.10.2018 19:46

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