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

  • 相关阅读:
    已有模板与tp框架结合
    模板文件引入css样式文件
    通过vertical-align属性实现“竖向居中”显示
    解决PHP服务端返回json字符串有特殊字符的问题
    PHP数组排序函数:sort、asort和ksort的不同
    PHP常用开发函数解析之数组篇
    PHP将数组存入数据库中的四种方式
    PHP foreach的两种用法 as $key => $value
    sharepoint database 操作
    Enabling Remote Errors in SSRS
  • 原文地址:https://www.cnblogs.com/softidea/p/4178894.html
Copyright © 2011-2022 走看看