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

  • 相关阅读:
    Unity3D性能优化之美术资源制件规范
    Unity3D屏幕自适应
    Unity3D性能优化之内存科普篇
    面向对象设计和特性
    Uinty3D性能优化之贴图科普篇
    Learn OpenGL 概念(一)
    假如博客园也有年度总结报告……
    2019年修图汇总
    Python 小案例实战 —— 简易银行存取款查询系统
    Win10 + Anaconda + Tensorflow-cpu + Pycharm安装教程
  • 原文地址:https://www.cnblogs.com/softidea/p/4178894.html
Copyright © 2011-2022 走看看