单元测试使用Mock随笔

时间:2021-11-30
本文章向大家介绍单元测试使用Mock随笔,主要包括单元测试使用Mock随笔使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
@RunWith(MockitoJUnitRunner.class)
public class UserServiceTest {

    @Spy
    @InjectMocks
    private UserServiceImpl userService;
    @Mock
    private UserMapper userMapper;
    @Mock
    private UserAddressService userAddressService;

    @Test
    public void saveOrUpdateTest() {
        try {
            when(userAddressService.check(any())).thenReturn(true);
            when(userService.remove(any())).thenReturn(true);
            doNothing().when(userMapper).setUTF8MB4();
            boolean result = userService.saveOrUpdate(null, null);
            System.out.println();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        Assert.assertTrue(true);
    }

}
@InjectMocks:是直接实例化一个对象,且可以实现自动注入,注入的对象就是@Mock或@Spy注解的对象
@Mock:Mock出的对象,执行对象方法会返回Null,可以通过when().thenReturn方式或者doReturn().when().方法的方式指定返回值。
如果对象方法是void的形式的,需要使用doNothing().when形式
@Spy:实例化的对象会优先执行原有方法,如果有类似when return形式的就会得到指定结果。
在MybatisPlus中和
@InjectMocks配合使用,便可实现拦截处理封装好的this.remove等类似方法
 


原文地址:https://www.cnblogs.com/hujiapeng/p/15624692.html