最近我做了Mockito框架的切換,對此非常滿意(另請參閱blog-post)。從EasyMock切換到Mockito非常簡單,我設法使測試兼容(即測試用例表現相同)。Mockito比EasyMock更喜歡?
您是否看到真正的原因或槍戰條件,以便比Mockito更喜歡EasyMock?到目前爲止,我所使用的代碼庫不能,但對您的觀點感興趣。
最近我做了Mockito框架的切換,對此非常滿意(另請參閱blog-post)。從EasyMock切換到Mockito非常簡單,我設法使測試兼容(即測試用例表現相同)。Mockito比EasyMock更喜歡?
您是否看到真正的原因或槍戰條件,以便比Mockito更喜歡EasyMock?到目前爲止,我所使用的代碼庫不能,但對您的觀點感興趣。
我比Mockito更加熟悉EasyMock,所以我不得不做一點挖掘。 Mockito有一個page,從Mockito的角度做了明確的比較。
正如我看到它,的Mockito的優點是:
EasyMock具有非常類似的功能集。 Mockito的核心特色是基於EasyMock的那些領域,Mockito團隊認爲這些領域是限制或次優的做法。
從功能角度來看,兩款產品都無法嘲諷靜態方法(我需要在沒有MBeanServer的情況下進行測試),但在這種情況下,您可以在任一框架上使用PowerMock。
我會說與任何適合您的測試要求的樣式。
希望這會有所幫助!
Mockito現在可能比我上次嘗試時好一些,但當它將API更改爲與以前版本不兼容時,它會丟失我。升級到最新版本會要求我更改許多現有的單元測試,這是我無法接受的。我認爲這對我的需求來說太不成熟,不穩定。
但這並不意味着它有任何問題。我使用的版本仍然正常,儘管我已經切換回EasyMock。
我可以想象這很痛苦。就我而言,我從1.8.3版本開始。看看發佈說明,API似乎已經穩定下來。 – 2010-06-27 21:49:48
的Mockito的開發是爲了讓BDD風格的單元測試,那就是:
,而不是
恕我直言,它產生更多可讀的測試,並允許你分開諸如你正在運行的上下文(設置Mocks)和驗證你感興趣的行爲等事情。以前的嘲笑框架需要你爲每次互動設定期望值,無論它與您在該測試中看到的行爲方面是否相關。
這不是真的,你不必爲每次互動設定期望值。使用Easymock,你可以設置NiceMock(createNiceMock())。無論如何,我認爲測試對象交互是一個好主意(應該是默認/常見行爲)。我很少使用niceMocks – mickthompson 2010-06-28 11:51:57
Mockito最初是EasyMock的一個分支,在NiceMock存在之前。 在BDD中,它們不是測試 - 只是關於如何使用類的一些示例的行爲描述。 BDD的想法是讓它變得簡單和安全,而不是固定代碼,所以不會中斷。測試是一個很好的副產品。在那個世界裏,測試每一個交互並不像產生可讀的,易於改變的例子那麼有意義。 – Lunivore 2010-06-28 12:06:22
我想測試我的代碼..然後,如果它的可讀性和易於更改是另一回事..我不認爲TDD專家會確認'交互沒有多大意義'。你總是從組件的交互中產生東西...我寧願有一些不太可讀的東西,但測試正確的相互作用。恕我直言交流(作爲可讀/易於更改的代碼)是測試中的主要主題,應該不容易避免 – mickthompson 2010-06-28 12:44:35
這裏是一個新聞的外觀。
案例的Mockito: http://code.google.com/p/mockito/wiki/MockitoVSEasyMock
案例的EasyMock:中 http://blog.octo.com/en/easymock-facts-fallacies/
可能的複製http://stackoverflow.com/questions/22697/whats-the-best-mock-framework-for- java – Raedwald 2013-10-22 19:38:03