от
Можно ли проверить, что «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 голосов
от
Это можно сделать с помощью методов
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);
}
    
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...