我已經在JUnits的EasyMocking中工作了很久。我對此非常舒服,但現在我想知道EasyMocks與Jmockits的不同之處。我試着通過他們的文檔,我發現語法有點不同。但我無法弄清楚他們的表演是否有任何不同。 任何人都可以幫我弄清楚什麼使得他們兩個都比另一個更好? JMockit中是否存在其他特殊元素? 在此先感謝...Jmockit與EasyMock有什麼不同?哪個更好用?
0
A
回答
0
你可以找到一個博客帖子大約它們之間的差異(也的Mockito!)在這裏:http://www.baeldung.com/mockito-vs-easymock-vs-jmockit
雖然他們都有不同的語法和不同的工作方式,你應該能夠實現您在嘲笑任何框架方面所需的任何內容。
1
JMockit和EasyMock/jMock/Mockito/PowerMock有很多不同之處。 這些是主要的:
- 進行集成測試支持:JMockit支持的out-of-container integration testing approach,類似於什麼Spring Test module提供,而且還支持Java EE。其他模擬庫僅支持模擬對象的隔離單元測試。
- A "faking" API(另請參閱xUnit Patterns)以及mocking API。其他每個模擬庫都只有一個模擬API。
- 除了「模擬物體」之外,還全力支持「嘲弄」。其他嘲諷庫使用它們創建的模擬對象,並且需要以某種方式傳遞給待測代碼。使用EasyMock/jMock/Mockito,
static
方法,構造函數和「new
-ed」對象根本不能被模擬。 PowerMock也支持完全模擬,但仍然專注於模擬對象(具體來說,新編的對象必須通過whenNew
錄製被模擬對象「替換」,而使用JMockit,測試可以簡單地聲明@Mocked
字段)。 - 支持嘲笑/僞造
final
類和方法。只有PowerMock也提供這種支持。 Mockito最近添加了一個「內聯模擬器」,它增加了對final
的支持,但默認情況下它不是主動的,可能不如可靠。 - 支持對未指定的子類和接口實現進行嘲諷/僞造(其中測試僅聲明基本類型被嘲笑/僞造)。
- 在嘲笑API,在具有多個參數的方法的期望可記錄/使用參數匹配器(如
anyString
等)僅用於一些參數驗證,而其他嘲笑API需要這種匹配器用於每單個參數。 - 同樣在嘲諷API中,預期可以明確驗證在被測試的代碼被執行後,就像在Mockito中一樣。 EasyMock/jMock不支持此驗證模型。
至於性能,嘲笑與JMockit一個類型可能具有更高的運行時開銷(通過類重新定義完成)相比時,與創建一個模擬對象的EasyMock/JMock的/的Mockito(通過子類定義完成) ,並且與PowerMock相比較低(通過定製類加載器上的類別定義完成)。但是,如果有很多嘲笑正在進行,您應該只注意到性能的差異,這很可能表示過度使用嘲諷。
相關問題
- 1. 哪個更好?爲什麼?
- 2. 哪個LINQ語句更好,爲什麼?
- 3. 哪個代碼更好?爲什麼?
- 4. 數據庫 - 哪個更好,爲什麼?
- 5. 如何使Java對象同步?哪個更好,爲什麼?
- 6. mosso與gogrid哪個更好?
- 7. jquery-latest.min.js和jquery 2.1.1有什麼區別?哪個更好?
- 8. Corona sdk:audio.play()和media.play()之間有什麼區別,哪個更好?
- 9. 在python中,下面有什麼區別,哪個更好
- 10. ajax和jquery有什麼區別,哪一個更好?
- 11. 色調和ambari視圖有什麼區別?哪一個更好
- 12. arrayListOf和mutableListOf有什麼區別,哪一個更好?
- 13. 顯示文本語法,兩種不同的方法,哪個更好,爲什麼?
- 14. 「是」vs「有」:哪個更好?
- 15. Data.Void.absurd與⊥有什麼不同?
- 16. 「((...))」與「(...)」有什麼不同?
- 17. 哪個更好?
- 18. 哪個更好?
- 19. 哪個更好
- 20. 哪個更好用或不用string.xml?
- 21. 哪些SQL查詢更好,爲什麼?
- 22. 哪種方法更好,爲什麼?
- 23. 哪個更好用$(function(){});或$(document).ready();爲什麼?
- 24. 哪一個更好用,爲什麼在c#
- 25. 哪個更適合用lodash擴展Javascript對象?有什麼不同?
- 26. NSDate - 有什麼更好的?
- 27. intrinsicContentSize與sizeThatFits。有什麼不同?每個用例有什麼用途?
- 28. 哪個更有效率?爲什麼?
- 29. 爲什麼JMockit的@Injectable不適用於所有相關領域?
- 30. 什麼是aspnet_Users和aspnet_Membership?我應該使用哪一個?有什麼不同?
通過這些文檔,發現了easyMocks的幾個優點。 其真實和明顯的是,jmockit在編寫測試用例時引入了一個結構,部分嘲諷在這裏更加合乎邏輯。同樣的參數匹配也宣告jmockit成爲贏家。但是,所有這些並不是說有人必須開始使用jmockit而不是easymocks。 這兩個框架的用法有什麼大的區別? 像是有沒有easymock不能做的其他功能,但其他可以嗎? – akshit