如何停止在 Mockito 的另一个 class 中调用方法的方法?

How to stop method calling a method in another class in Mockito?

我在 Java 服务 class 中使用以下方法进行测试:

public void findPersonToDelete(String id){

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


}

问题是 personRepository 调用了抛出 Null Pointer 的其他代码。

我尝试使用以下行来阻止 personRepository 调用其他方法:

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

但是错误仍然存​​在?我该如何解决这个问题?

如果您的 PersonRepository 有一个 setter,您可以模拟 class 并将其设置在您的服务中,这样模拟的 class 将被调用,您只能检查如果它被调用。 所以像:

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

然后勾选你要测试的内容。