Пропуск отправки одного из параметров метода в Junit - PullRequest
0 голосов
/ 03 октября 2018

Я вызываю один публичный метод в моем 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(), используется для создания фиктивных объектов и, следовательно,не могу использовать его для этого теста.

1 Ответ

0 голосов
/ 03 октября 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...