话说咱们作的所谓的接口测试真的是不三不四啊,测的是controller层,那叫接口木??!!但是老大们说写的是接口测试,那就接口吧!html
自接手写这个接口测试不久,不少人,包括一个关系比较好的架构师就跟我说,写这个很麻烦啊,代码很乱,你得mock一堆。java
既然已经跳进去了,那就游一下子吧。为了mock,可谓想尽了办法啊,从通常的mock工具mockito,到java的反射,最后发现一个强大的工具——PowerMockito 他竟然可以mock私有方法。虽然,最后被老大们说私有方法是不该该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)post
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);htm
http://blog.sina.com.cn/s/blog_6176c38201014dg1.htmlblog