10個Java開發人員的頂級測試工具、庫和框架介紹
介紹10個出色的測試框架,工具和庫,以提高您的自動化測試技能。
最近,我寫了一些關於Java開發人員今年應該學習什麼的文章,例如程式語言 ,庫 和框架 ,但如果你只有一件事需要改進或學習,那麼那必須是你的自動化測試技能。
測試是將專業開發人員與業餘開發人員分開的學科之一。它不是關注TDD,BDD或任何測試方法,但在最低級別,您必須編寫程式碼來自動測試程式碼。
許多Java開發人員編寫在構建期間自動執行的單元測試 和整合測試,主要是使用Jenkins 或TeamCity 等持續整合工具。
如果你們中的一些人想知道為什麼程式設計師應該專注於自動化測試,那麼讓我告訴你,由於更多的意識和DevOps的出現,自動化測試的重要性呈指數級增長。
公司通常更喜歡擅長編寫單元測試並且熟悉各種單元測試框架,庫和工具的程式設計師,例如JUnit ,Selenium ,REST-Assured,Spock框架 等。
作為Java開發人員,我們處理非常不同的領域,從編寫核心Java程式碼到建立JSP頁面,編寫REST API ,有時甚至建立用於構建自動化的Groovy指令碼。這就是為什麼我們還需要了解我們可以用來自動化測試的不同工具。
例如,我只知道JUnit很長一段時間,但是當我不得不測試我的JSP頁面時,在找到Selenium之前我一無所知。REST Assured也是如此,因為我通常使用curl命令 測試我的REST API ,但REST Assured將REST API的單元測試提升到另一個級別。
10個適用於Java程式設計師的有用單元和整合測試工具
由於我相信程式設計師和他們的工具一樣好,我總是在空閒時間嘗試學習和探索新的工具和庫,這個列表是該研究的一部分。
在本文中,我將分享10個最好的和必不可少的工具 ,框架 和庫,它們可以幫助Java開發人員在各種Java專案上編寫單元測試和整合測試。
1. JUnit
我不認為JUnit需要任何介紹。即使您是初學Java程式設計師,您也可能聽說過它。它允許您為Java程式碼編寫單元測試。
幾乎所有主要的IDE(例如Eclipse ,NetBeans 和IntelliJIDEA )都提供JUnit整合,這意味著您可以直接從這些IDE編寫和執行單元測試。
我們大多數人仍在使用JUnit 4,但JUnit 5已經發布,可能是今年要看的下一個東西。您可以將JUnit用於單元測試和整合測試,它還支援Java 8功能。
2. REST Assured
在Java中測試和驗證REST服務比在Groovy 等動態語言中更難。
REST Assured將使用這些語言的簡單性帶入了Java域。它是REST API整合測試的絕佳工具。
3. Selenium
Selenium可能是最流行的Java UI測試工具,它允許您測試JSP頁面 而無需在瀏覽器中啟動它們。
您可以使用JUnit和Selenium測試Web應用程式UI。它甚至允許您編寫Web應用程式驗收測試。
4. TestNG
TestNG是一個受JUnit和NUnit啟發的測試框架,但引入了許多新功能,使其功能更強大,更易於使用,例如註釋 ,在任意大執行緒池中執行測試,並提供各種策略(所有方法都在自己的執行緒中,一個每個測試類的執行緒等)。
由於使用了JUnit 4中的註釋並集成了Hamcrest匹配器,JUnit和TestNG之間的差距已經縮小,但這取決於您。
5.Mockito
Java類有許多模擬框架,例如PowerMock和JMock,但我個人喜歡Mockito 的簡單API,很棒的文件和很多例子。
模擬是現代單元測試的基本技術之一,因為它允許您在沒有任何依賴性的情況下單獨測試程式碼,這就是為什麼我鼓勵每個Java開發人員與JUnit 一起學習模擬框架。
我最喜歡的模擬框架是Mockito,但如果你願意,你也可以探索PowerMock或JMock。
6. Spock框架
Spock是Java 和Groovy 應用程式的另一個測試和規範框架。它是用Groovy編寫的,這使它成為一種非常富有表現力和規範的規範語言。
當您使用Spock時,您的測試將變得更易讀並且更易於維護,並且由於其JUnit執行程式,Spock與大多數IDE,構建工具和持續整合伺服器相容。
7. Cucumber
Cucumber是自動化整合測試的另一個很好的工具,但是它與同類別中的其他工具的不同之處在於它的規範功能。
Cucumber將規範和測試文件合併為一個統一的整體生活文件,由於它們將由Cucumber自動測試,因此您的規範始終是最新的。
8. Spring Test
Spring MVC帶有一個非常有用的測試框架,允許在不涉及Web容器的 情況下進行深入測試。
它是向Spring應用程式編寫自動化測試的最有用的庫之一。它為Spring驅動的應用程式(包括MVC控制器) 編寫單元和整合測試提供了一流的支援。
還有一個Spring Test DbUnit將Spring Test框架與DbUnit和Spring Test MVC HtmlUnit整合在一起,它將Spring Test MVC框架與HtmlUnit整合在一起。
通過使用這些工具,您可以輕鬆地以自動方式測試Spring MVC應用程式 。
9. DBUnit
資料庫是許多Java應用程式(核心Java和Web應用程式)不可或缺的一部分,可能是進行單元測試時的最大障礙。
連線到Dev或UAT資料庫進行整合測試是不可靠的,因為任何人都可以更改資料和模式,例如表和儲存過程 ,這將導致自動整合測試失敗。
DbUnit是一個JUnit擴充套件,可用於在每次整合測試之前將資料庫初始化為已知狀態,以確保資料庫包含正確的資料。
DbUnit有自己的問題,但它是一個非常有用的工具,因為它可以幫助我們將測試資料建立與測試程式碼分開。
10. Robot框架
Robot Framework是一個基於Python 的通用測試自動化框架,用於驗收測試和驗收測試驅動開發。
它是一個關鍵字驅動的測試框架,使用表格測試資料語法。您可以使用它來測試分散式異構應用程式,其中驗證需要涉及多種技術和介面。
結論
這就是Java開發人員的一些基本單元測試和整合測試工具,框架和庫的全部內容。
我還沒有列入更多的庫,例如AssertJ和Hamcrest,它們可以幫助你編寫漂亮和流暢的測試 - 但是要慢慢來。
首先,學習一種可以在日常工作中使用的工具或庫。例如,如果您正在使用Java UI,那麼您應該首先學習Selenium,因為那樣您可以更多地關注這個工具。