話說咱們作的所謂的接口測試真的是不三不四啊,測的是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