mockito在单元测试的使用一

mockito是mocking的框架,用于解决在单元测试中对于很多类和资源的依赖,在测试开发中,能单测中能够比较好的隔离外部资源,达到我们比较理想的测试效果。

1.在maven中引入mockito

      
        
            org.easymock
            easymock
            3.1
            test
        
        
        
            org.mockito
            mockito-all
            1.9.5
            test
        

备注:还有junit相关的jar包

2.创建mock的对象

@Test
    public void testTea(){
        //创建mock的对象
        Tea mockTea=Mockito.mock(Tea.class);
        String tea="green tea";
        //设置输入的zhi,和预期返回的zhi
        when(mockTea.tea("red tea")).thenReturn("green tea");
        when(mockTea.tea("green tea")).thenReturn("mlik");
        String real=mockTea.tea(tea);
        System.out.println(real);
        //断言检查
        assertEquals(mockTea.tea("green tea"),"mlik");
        //验证该方法是否执行了两次
        Mockito.verify(mockTea,times(2)).tea(tea);
    }

    @Test
    public void test2(){
        Tea tea2=new Tea();
        //使用spy监控真实的对象
        Tea mock=spy(tea2);
        mock.tea("red tea");
        assertEquals("red tea",tea2.tea("red tea"));
        verify(mock,times(3)).tea("red tea");
    }

方法一中Mock不是真实的对象,它只是用类型的class创建了一个虚拟对象,并可以设置对象行为
方法二中spy是一个真实的对象,但它可以设置对象行为
3.设置对象的预期行为返回
当我们在调用一些接口或者方法,使用when对我们的输入值,进行干预,不用通过真实的服务,就能拿到想要的数据,进行验证
4.使用verify验证方法以及执行的次数,是否达到预期
文章参考:https://blog.csdn.net/xiang__liu/article/details/81147933

你可能感兴趣的:(mockito在单元测试的使用一)