zoukankan      html  css  js  c++  java
  • 用PowerMockito来mock私有方法(转)

     话说我们做的所谓的接口测试真的是不伦不类啊,测的是controller层,那叫接口木??!!可是老大们说写的是接口测试,那就接口吧!

        自接手写这个接口测试不久,很多人,包括一个关系比较好的架构师就跟我说,写这个很麻烦啊,代码很乱,你得mock一堆。

        既然已经跳进去了,那就游一会儿吧。为了mock,可谓想尽了办法啊,从一般的mock工具mockito,到java的反射,最后发现一个强大的工具——PowerMockito   他居然能够mock私有方法。虽然,最后被老大们说私有方法是不应该mock的用PowerMockito来mock私有方法(慎重!),好吧,那我记录下总可以把,或许以后还是会用到呢。以下是一个例子:


        //模拟 threadController的 doShowChildrens私有方法
        val postCountOf24HourMap= new HashMap[String, Int]()
        postCountOf24HourMap.put("1009",26)
        postCountOf24HourMap.put("1010",90)
        mav.addObject("postCountOf24HourMap", postCountOf24HourMap)


        var childrensMap =new HashMap[String,ForumDynamicInfo]()
        val forumDynamicInfo:ForumDynamicInfo  = new ForumDynamicInfo
        forumDynamicInfo.setRssCount(50) //设置关注数
        childrensMap.put("1010",null)
        childrensMap.put("1009",forumDynamicInfo)
        mav.addObject("childrensMap",childrensMap)

        var childrens = new LinkedList[Forum]()
        val childForum = new Forum
        childForum.setFid(1009)
        childForum.setName("测试版块")
        childForum.setDescription("记录下你的心情吧")
        childForum.setIcon("http://www.icon.com/icon.jpg")
        childForum.setIconUrl("http://www.19lou.com")
        val   moderator = new Moderator
        moderator.setUserName("版主")
        childForum.setModeratorList(List(moderator))
        childrens.add(childForum)
        mav.addObject("childrens",childrens)


        PowerMockito.doReturn(mav).when(threadControllerSpy, "doShowChildrens",mav,forum);

    http://blog.sina.com.cn/s/blog_6176c38201014dg1.html

  • 相关阅读:
    Android 蓝牙4.0 BLE (onServicesDiscovered 返回 status 是 129,133时)
    Android 读取蓝牙设备信息开发
    Android RxJava
    Android 通信 EventBus
    数据仓库基础介绍
    探索SQL Server元数据(三):索引元数据
    探索SQL Server元数据(二)
    MySQL常见备份方案
    hivesql优化的深入解析
    mysql执行计划看是否最优
  • 原文地址:https://www.cnblogs.com/softidea/p/4178894.html
Copyright © 2011-2022 走看看