mockito在单元测试的使用一

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

1.在maven中引入mockito

      <!--MOCK框架   -->
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.1</version>
            <scope>test</scope>
        </dependency>
        <!--MOCKITO框架   -->
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.9.5</version>
            <scope>test</scope>
        </dependency>

备注:还有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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容