話說我們做的所謂的接口測試真的是不倫不類啊,測的是controller層,那叫接口木??!!可是老大們說寫的是接口測試,那就接口吧!
自接手寫這個接口測試不久,很多人,包括一個關系比較好的架構師就跟我說,寫這個很麻煩啊,代碼很亂,你得mock一堆。
既然已經跳進去了,那就遊一會兒吧。為了mock,可謂想盡了辦法啊,從一般的mock工具mockito,到java的反射,最後發現一個強大的工具——PowerMockito 他居然能夠mock私有方法。雖然,最後被老大們說私有方法是不應該mock的
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuATO4QWYmNjNzEmMiNjMyU2Y3gDNlVTZ3YDOiFmM1QmMfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
,好吧,那我記錄下總可以把,或許以後還是會用到呢。以下是一個例子:
//模拟 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("記錄下你的心情吧")
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