Posted on 2010-02-14 21:20
leekiang 閱讀(307)
評論(0) 編輯 收藏 所屬分類:
測試
至于easymock之外的選擇,我個人比較喜歡和推崇jmockit,mocito雖然也不錯不過有了jmockit我就pass掉mockito了。
只是每次看到項目代碼中,
用easymock有record,replay卻不調用verify時,就覺得郁悶。這樣的testcase,就算通過了,又能說明什么?
Mock通常很少考慮復用,每個mock對象通過都是遵循"just enough"原則,一般只適用于當前測試方法。因此每個測試方法都必須實現自己的mock邏輯,當然在同一個測試類中還是可以有一些簡單的初始化邏輯可以復用。
stub則通常比較方便復用,尤其是一些通用的stub,比如jdbc連接之類。spring框架就為此提供了大量的stub來方便測試,不過很遺憾的是,它的名字用錯了:spring-mock
mock和stub的最重要的區別:expectiation/期望。
對于mock來說,expectiation是重中之重:我們期待方法有沒有被調用,期待適當的參數,期待調用的次數,甚至期待多個mock之間的調用順序。所有的一切期待都是事先準備好,在測試過程中和測試結束后驗證是否和預期的一致。
而對于stub,通常都不會關注expectiation
easymock教程-mock和stubhttp://www.javaeye.com/topic/21630
單元測試框架JMock與Mockito的用法比較http://javasee.iteye.com/blog/1000868
http://hyjun.iteye.com/blog/337206
單元測試mock:用JMockit寫單元測試實例http://gojko.net/2009/10/23/mockito-in-six-easy-examples/