首页 > 其他 > 详细

Mockito使用总结

时间:2017-01-22 14:53:42      阅读:358      评论:0      收藏:0      [点我收藏+]

Mockito简单使用

对于某些不容易构造,或者不容易获取比较复杂的对象,用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。

Object:

Bug s=mock(Bug.class); 
when(s.getId()).thenReturn("dddddddd");
System.out.println(s.getId());   //print ddddddd

 

List:

技术分享

 

Mockito注解使用:

为需要mock的对象添加注解,在测试代码执行的情况下触发该注解的生效,把mock覆盖对象注入,以达到可以在正式的代码加入mock,只要控制好生效的机制

@Mock //mock 注解
@Autowired  //spring 注解
private BugDaoI bugDao;

    @Override
    public Map<String, List<Object>> clo() {        
        MockitoAnnotations.initMocks(this); //运行到这里注解生效
        List<Object[]> mockdata=new LinkedList<Object[]>();
        mockdata.add(new Object[]{"8645","test1"});
        when(bugDao.findBySql("select distinct name from tbug")).thenReturn(mockdata);//开始mock

 

技术分享

 

通过mock集合jacoco提高测试代码覆盖率:

 测试代码:能通过变化参数(等价类,边界值)来观察整体覆盖率的提升

技术分享

 

Jacoco统计:能更清晰的把握你写的白盒测试代码的覆盖情况,收益情况

技术分享

 

总结:

单元测试的mock比httpmock要简单很多
通过注解对mock的时机进行控制,十分灵活

 

动态添加@Mock注解:

动态添加注解
<dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.12.0.GA</version>
</dependency>

 技术分享

 

Mockito使用总结

原文:http://www.cnblogs.com/season-xie/p/6340058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!