Mock测试框架(Mockito为例)

单元测试时,部分外部对象构造麻烦,如HttpRequest、依赖Dao的Service等。为此出现Mock技术,可用Mock工具模拟外部对象完成单元测试。本文以Mockito为例,用简单例子介绍Mock工具基本使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做单元测试的时候,有的时候用到的一些类,我们构造起来不是那么容易,比如HttpRequest,或者说某个Service依赖到了某个Dao,想构造service还得先构造dao,这些外部对象构造起来比较麻烦。 所以出现了Mock! 我们可以用 Mock 工具来模拟这些外部对象,来完成我们的单元测试。

  实现Mock技术的优秀开源框架有很多,下面以Mockito为例,用几个简单例子来介绍Mock工具的基本使用:

@Test  
    public void simpleTest(){  
          
        //创建mock对象,参数可以是类,也可以是接口  
        List<String> list = Mockito.mock(List.class);  
          
        //设置方法的预期返回值 (如果list.get(0) 被调用 ,调用之后返回 helloworld)
        //当然前提是要创建了Mock对象,如这里就是创建了跟 List相关的 Mock对象
        //这里还看不出什么作用,因为Mock 还看不出来,List很容易就能创建
        //假如是一个很复杂的对象,构造这样一个对象很有难度,使用Mock就很方便了,我们不用去一步一步填充它的属性去构造,
        //只需要Mock 一下,就可以拿到这个对象,去测试它的方法,(当然,如果方法有参数我们是需要传递的,像get(0))
        //这里定义了当我们调用list.get(0)的时候,返回“helloWorld"
        Mockito.when(list.get(0)).thenReturn("helloworld");  
        //list.get(0)的调用就会返回 helloworld
        String result = list.get(0);  
        System.out.println(result);
        
        //验证方法调用(是否调用了get(0))  
        Mockito.verify(list).get(0); 
        
        Assert.assertEquals("helloworld", result); 
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值