本文是Jmockit學習過程當中,根據官網所列的工具特性進行解讀。html
一、調用次數約束(Invocation count constraints)數據庫
能夠經過調用計數約束來指定預期和/或容許匹配給按期望的調用數。微信
二、記錄嚴格指望(Recording strict expectations)app
通常記錄在「new Expectations(){...}」塊中的指望是比較常規的。 這意味着他們指定的調用預計在重播階段至少會發生一次; 並且它們可能會發生不止一次,而且以與其餘記錄的指望不一樣的順序發生; 另外,與任何記錄的指望不匹配的調用也一樣容許以任何數量和任何順序發生。可是若是沒有調用與給定的記錄指望匹配,則在測試結束時拋出「Missing invocation」錯誤,從而致使測試失敗,拋出異常相似以下信息:函數
嚴格指望:當記錄之後,僅容許在重放期間徹底匹配記錄(在明確指定的配額內,在須要時)進行調用,匹配調用數(默認狀況下只有一個) 並按照它們發生的順序。 在重播期間發生但未能匹配記錄的嚴格指望的調用被認爲是意外的,致使當即的「unexpected invocation」錯誤,從而致使測試失敗。工具
非嚴格指望:顧名思義,對指望沒有嚴格要求,mock的方法能夠不調用。post
一、明確驗證(Explicit verification)單元測試
二、部分模擬(Partial mocking)學習
三、沒有方法調用從記錄切換到重播(No method call to switch from record to replay)測試
四、沒有額外的代碼用於隱式驗證(No extra code for implicit verification)
五、沒有額外的「準備測試」代碼(No extra "prepare for test" code)
六、不須要使用@RunWith註釋或基礎測試類(No need to use @RunWith annotation or base test class)
七、void和非void方法之間的語法一致(Consistent syntax between void and non-void methods)
八、參數匹配僅適用於某些參數(Argument matchers for some parameters only)
九、基於值類型的屬性使參數更容易匹配(Easier argument matching based on properties of value objects)
十、級聯模擬(Cascading mocks)
十一、支持模擬多個接口(Support for mocking multiple interfaces)
十二、支持模擬註釋類型(Support for mocking annotation types)
1三、部分指望(Partially ordered expectations)
1四、模擬構造函數和final / static / native / private方法(Mocking of constructors and final/static/native/private methods)
1五、模擬/打樁的聲明性應用在整個測試類(Declarative application of mocks/stubs to whole test classes)
1六、自動注入模擬(Auto-injection of mocks)
1七、模擬」新的」對象(Mocking of "new-ed" objects)
1八、支持模擬枚舉類型(Support for mocking enum types)
1九、測試類的聲明式模擬(模擬領域)(Declarative mocks for the test class (mock fields))
===================================================================
更多原創測試技術文章同步更新到微信公衆號 :三國測,敬請掃碼關注我的的微信號,感謝!
感謝閱讀,做者原創技術文章,轉載請註明出處
其餘推薦相關閱讀:
單元測試系列之四:Sonar平臺中項目主要指標以及代碼壞味道詳解
單元測試系列之七:Sonar 數據庫表關係整理一(rule相關)