1、@Mock:mock对象,对函数的调用均使用mock,不会调用真实方法,使用:
Mockito.when(testService.getById(Mockito.any())).thenReturn(testPo);
2、@Spy:spy对象,对函数的调用是真实掉用,如果不想真实调用可以使用:
Mockito.doReturn(true).when(testService).save(Mockito.any());
3、@InjectMocks:创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
测试一个方法的时候往往会出现有的方法不想被调用的情况:
service:save(),save里面用到this.getById,这个getById也想mock掉,那么可以使用spy修饰service,然后使用doreturn实现即可