Как я могу проверить, был ли вызван метод для объекта, созданного внутри тестируемого метода - PullRequest
0 голосов
/ 04 июля 2019

Можно ли проверить, что "innerMethod" был вызван без изменения класса Class?

Мне нужно сделать модульное тестирование в отдельном классе по обоим сценариям «someCondition».

Проблема в том, что метод void, поэтому я не могу использовать возвращаемый тип. Единственный способ - проверить, был ли вызван «innerMethod».

Я думал использовать Mokito для проверки, но этот метод вызывается внутри метода объекта, созданного во время выполнения.

Любое предложение приветствуется.

public class Class {

     public void outerMethod(outerObj) {

          if(someCondition) {

               Object innerObj = new Object();
               innerObj.innerMethod(outerObj); 

          } else {

               //other code
          }    
}

1 Ответ

0 голосов
/ 04 июля 2019

Этого можно добиться с помощью методов Mockito::times и Mockito::verify.

Тестовая установка будет выглядеть следующим образом:

@InjectMocks
private SomeService service;

@Mock
private SomeHelper helper;

и затем проверьте, что какой-то метод от помощника был задействован следующим образом:

@Test
public void testInnerHasBeenCalledOnce() throws Exception {

    service.outherMethodName(someParam);

    Mockito.verify(helper, Mockito.times(1)).innerMethodName(someParamSecond);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...