0

У меня есть следующий метод, чтобы проверить в моем классе Java услуг:Как остановить метод вызова метода в другом классе в Mockito?

public void findPersonToDelete(String id){ 

    //repository method then called 
    personRepository.findPersonAndDelete(id); 


} 

Вопрос заключается в том, что personRepository называет другой код, который бросает Null Pointer.

Я пытался использовать следующую строку, чтобы остановить personRepository от вызова других методов:

Mockito.doNothing().when(personRepository).findPersonAndDelete(id); 

Однако ошибка все еще сохраняющихся? Как я могу это исправить?

+1

Если вы не вызываете его с любым значением 'id', он будет выполнять этот метод в обычном режиме. – byxor

+0

Является ли personRepository ложным? – Heisenberg

+2

попробуйте 'anyInt()' вместо определенного значения. Далее 'PersonRepository' должен быть« макетом »или« шпионом ». –

ответ

1

Если у вас есть сеттер для вашего PersonRepository, вы можете высмеять класс и установить его в своей службе, таким образом вызывается издеваемый класс, и вы можете только проверить, вызвано ли оно. так что-то вроде:

PersonRepository repo = Mockito.mock(PersonRepository.class); 
service.setPersonRepository(repo); 
service.findPersonToDelte(1); 

, а затем проверить, что вы хотите проверить.

Смежные вопросы