作為一名Java開發(fā)人員,我們從事不同的領(lǐng)域,從編寫核心Java代碼到創(chuàng)建JSP頁面、編寫RESTAPI,有時(shí)甚至創(chuàng)建Groovy腳本以實(shí)現(xiàn)構(gòu)建自動(dòng)化。這就是為什么我們還需要了解可以用來自動(dòng)化測試的不同工具。
在本文中,我將與大家分享10種最好、最基本的工具、框架和庫,它們可以幫助Java開發(fā)人員在各種Java項(xiàng)目上編寫單元測試和集成測試。
1.JUnit
幾乎所有主要的IDE,例如Eclipse、NetBeans和IntelliJ,都提供JUnit集成,這意味著你可以從這些IDE編寫和運(yùn)行單元測試。你可以使用JUnit進(jìn)行單元測試和集成測試,它還支持Java8特性。
2.REST Assured
在Java中測試和驗(yàn)證REST服務(wù)比在Groovy等動(dòng)態(tài)語言中更難。REST Assured將這些語言的簡單性引入Java領(lǐng)域,它是RESTAPI集成測試的一個(gè)很好的工具。
3.Selenium
Selenium可能是最流行的JavaUI測試工具,它允許你在不在瀏覽器中啟動(dòng)JSP頁面的情況下測試JSP頁面。你可以使用JUnit和Selenium測試web應(yīng)用程序UI。它甚至允許你編寫web應(yīng)用程序驗(yàn)收測試。
4.TestNG
TestNG是一個(gè)受JUnit和NUnit啟發(fā)的測試框架,但引入了許多新功能,使其更強(qiáng)大、更易于使用,例如注釋、在任意大的線程池中運(yùn)行測試以及各種可用策略(所有方法都在各自的線程中,每個(gè)測試類一個(gè)線程,等等)。JUnit和TestNG之間的差距已經(jīng)縮小,因?yàn)槭褂昧薐Unit4中的注釋并集成了Hamcrest匹配器,但這取決于你。
5.Mockito
有許多針對Java類的模擬框架,其中就有Mockito,因?yàn)樗泻唵蜛PI、出色的文檔和大量示例。模擬是現(xiàn)代單元測試的基本技術(shù)之一,因?yàn)樗试S你在沒有任何依賴性的情況下多帶帶測試代碼,所以每個(gè)Java開發(fā)人員在學(xué)習(xí)JUnit的同時(shí)也應(yīng)該學(xué)習(xí)模擬框架。
6.Spock框架
Spock是Java和Groovy應(yīng)用程序的另一個(gè)測試和規(guī)范框架。它是用Groovy編寫的,這使它成為一種非常有表現(xiàn)力和切中要害的規(guī)范語言。當(dāng)你使用Spock時(shí),你的測試將變得更可讀、更易于維護(hù)。由于它的JUnit 運(yùn)行,Spock與大多數(shù)IDE、構(gòu)建工具和持續(xù)集成服務(wù)器兼容。
7.Cucumber
Cucumber是自動(dòng)化集成測試的另一個(gè)偉大工具,但它與同類其他工具的不同之處在于它的規(guī)范功能。Cucumber將規(guī)范和測試文檔合并到一個(gè)完整的動(dòng)態(tài)文檔中,由于Cucumber將自動(dòng)測試它們,所以你的規(guī)范始終是最新的。
8.Spring測試
Spring MVC附帶了一個(gè)非常有用的測試框架,它允許在不涉及web容器的情況下進(jìn)行深入測試。它是為Spring應(yīng)用程序編寫自動(dòng)測試的最有用的庫之一。它為編寫Spring驅(qū)動(dòng)的應(yīng)用程序(包括MVC控制器)的單元測試和集成測試提供了一流的支持。
還有一個(gè)Spring測試DbUnit,它將Spring測試框架與DbUnit集成,還有一個(gè)Spring測試MVC HtmlUnit,它將Spring測試MVC框架與HtmlUnit集成。通過使用這些工具,你可以輕松地以自動(dòng)化的方式測試SpringMVC應(yīng)用程序。
9.DBUnit
數(shù)據(jù)庫是許多Java應(yīng)用程序(包括核心Java和web應(yīng)用程序)不可分割的一部分,可能是進(jìn)行單元測試時(shí)的最大障礙。連接到Dev或UAT數(shù)據(jù)庫進(jìn)行集成測試是不可靠的,因?yàn)槿魏稳硕伎梢愿臄?shù)據(jù)和模式,例如表和存儲過程,這將導(dǎo)致自動(dòng)集成測試失敗。
DbUnit是一個(gè)JUnit擴(kuò)展,可用于在每次集成測試之前將數(shù)據(jù)庫初始化為已知狀態(tài),以確保數(shù)據(jù)庫包含正確的數(shù)據(jù)。DbUnit是一個(gè)非常有用的工具,因?yàn)樗鼛椭覀儗y試數(shù)據(jù)創(chuàng)建與測試代碼分離。
10.Robot框架
Robot框架是一個(gè)基于Python的通用測試自動(dòng)化框架,用于驗(yàn)收測試和驗(yàn)收測試驅(qū)動(dòng)的開發(fā)。它是一個(gè)關(guān)鍵字驅(qū)動(dòng)的測試框架,使用表格測試數(shù)據(jù)語法。你可以使用它來測試分布式異構(gòu)應(yīng)用程序,其中驗(yàn)證需要涉及多種技術(shù)和接口。