在上一篇《PowerMock學習之PoweMock的入門(一)》文章中,已經簡單說起一些關於powermock的用法,可是入門還未完,我還要堅持把它學習並堅持更新到博客中。html
ps:僅更新此次案例中使用的api說明。數據庫
接着我再來一個稍稍有點難度的需求,須要建立學生操做。api
須要在dao和service加入兩個方法以下:單元測試
dao中加入:學習
/** * create student * * @param student */ public void createStudent(Student student) { throw new UnsupportedOperationException(); }
service中加入:測試
/** * create student * @param student */ public void createStudent(Student student) { studentDao.createStudent(student); }
若是針對createStudent寫單元測試,確定是錯誤的,很明顯數據庫資源不存在,上個案例已經說了,這裏不作贅述,重點是此次是驗證無返回值類型的測試,即void,那該怎麼測試呢?spa
mock後的createStudent方法,實際什麼都不會作,仔細想下,咱們調用createStudent方法,按照用例測試,也無非就是調用成功或者失敗,可先假設調用成功或失敗.。代理
而後,使用mock中verify這個方法便可完成驗證,具體示例代碼以下:code
@Test public void testCreateStudentWithMock() { StudentDao studentDao = PowerMockito.mock(StudentDao.class); Student student=new Student(); PowerMockito.doNothing().when(studentDao).createStudent(student); StudentService studentService = new StudentService(studentDao); studentService.createStudent(student); Mockito.verify(studentDao).createStudent(student); }
再次運行就可以經過,其中Mockito.verify主要用來校驗被mock出來的對象中的某個方法是否被調用。htm
到此關於mock的入門就結束了。