@Mock
@Mock 注解注入的对象可以正常调用它的方法,但它的方法默认不会执行真实逻辑,而是返回“空值”或“默认值”(如 null、0、false 等)。如果需要方法返回特定值或执行自定义逻辑,必须通过 Mockito 的桩方法(Stubbing) 显式定义行为。
@Spy
部分 Mock,未定义行为的方法会调用真实逻辑
Mockito.CALLS_REAL_METHODS
需要手动注入依赖
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private MapBaseService mapBaseService;
@InjectMocks
MapService mapService;
mapBaseService = Mockito.mock(MapBaseService.class, Mockito.CALLS_REAL_METHODS);
Whitebox.setInternalState(mapService, "mapBaseService", mapBaseService);