java mockito是什么,讓我們一起了解一下?
Mockito是一個強大的用于Java開發的模擬測試框架,通過Mockito可以創建和配置Mock對象,進而簡化有外部依賴的類的測試。就是創建外部依賴的Mock對象,然后將此Mock對象注入到測試類中。
使用Mock的好處是什么?
1、可以提前創建測試TDD。
這一個是更強大的好處之一。 如果您創建一個模擬器,您可以在服務創建之前編寫服務測試,使您能夠在開發過程中將測試添加到自動化環境中。 換句話說,Service Mocking可以讓您使用測試驅動開發。
2、團隊可以并行工作。
這與上述類似 為不存在的代碼創建測試。 但是以前的一點是針對開發人員編寫測試,這是針對測試團隊的。 當您沒有任何測試時,團隊如何開始創建測試? 模擬它,并對模擬器進行測試! 這意味著當服務準備好進行測試時,QA團隊實際上可以準備一整套測試; 我們沒有停機的時候,一個隊伍等待另一個完成。 這使得嘲弄的財務論據特別強。
3、可以創建概念或演示的證明。
由于Mocks可以(成本最高)能夠實現成本效益,因此可以使用Mocks來創建概念證明,線框架,或作為您正在考慮構建的應用程序的演示。 這是非常強大的,為決定是否繼續開發項目做出決定,但最重要的是為實際設計決策提供了良好的基礎。
4、可以編寫測試資源不可訪問。
這是不屬于實際利益類別的好處之一,而是作為救生員。 曾經想要測試或使用服務,只是被告知該服務是在防火墻后面,那個防火墻無法為您打開,或者您被授權使用該防火墻? 當你這樣做時,一個MockService放置在可訪問的地方,包括在你本地的電腦上,是一個救命的人。
5、模擬器可以交付給客戶。
有些情況下,您無法允許訪問外部來源的測試系統(如合作伙伴或客戶)的原因。 這些原因可以是訪問安全性,信息敏感性,或只是測試環境可能無法24/7訪問的事實。 在這些情況下 您如何為您的合作伙伴或客戶提供測試系統以開始開發或測試? 一個簡單的解決方案是從您的網絡或客戶自己的網絡提供一個模擬。 soapUI模擬是非常容易部署的,它可以在soapUI中運行,也可以作為.WAR文件導出,并放置在您選擇的Java服務器中。
6、可以隔離系統。
有時您想測試系統的一部分,而不會影響其他系統部件。 這是因為其他系統會對測試數據增加噪音,使得從收集的數據中得出更好的結論更加困難。 使用mocks,您可以刪除所有的系統,嘲笑所有系統,除了您在測試中需要確定的一個系統。 當進行嘲諷隔離時,這些嘲弄可以做得非常簡單但可靠,快速,可預測。 這給您一個測試環境,您已經刪除了所有隨機行為,具有可重復的模式,并可以很好地監控特定系統。
示例代碼如下:
package?info.sanaulla.models; import?java.util.List; /** *?Model?class?for?the?book?details. */ public?class?Book?{ private?String?isbn; private?String?title; private?List?authors; private?String?publication; private?Integer?yearOfPublication; private?Integer?numberOfPages; private?String?image; public?Book(String?isbn, String?title, List?authors, String?publication, Integer?yearOfPublication, Integer?numberOfPages, String?image){ this.isbn?=?isbn; this.title?=?title; this.authors?=?authors; this.publication?=?publication; this.yearOfPublication?=?yearOfPublication; this.numberOfPages?=?numberOfPages; this.image?=?image; } public?String?getIsbn()?{ return?isbn; } public?String?getTitle()?{ return?title; } public?List?getAuthors()?{ return?authors; } public?String?getPublication()?{ return?publication; } public?Integer?getYearOfPublication()?{ return?yearOfPublication; } public?Integer?getNumberOfPages()?{ return?numberOfPages; } public?String?getImage()?{ return?image; } }
以上就是小編今天的分享了,希望可以幫助到大家。