一文了解十大 Java 開發(fā)者必備測試框架尿扯!

想要提升自己的自動化測試技能嗎求晶?本文將介紹10個優(yōu)秀的 Java 測試框架和庫,來提升你的自動化測試技能衷笋。

最近芳杏,我寫了很多面向Java 開發(fā)者的文章,介紹了一些值得開發(fā)者學習的編程語言辟宗、庫以及框架爵赵。面對多項技術能力,如果你的精力只夠提升其中一項技能泊脐,那么我認為自動化測試技能是最值得你去提升的空幻。

測試是一門能夠區(qū)分專業(yè)開發(fā)人員與業(yè)余開發(fā)人員的重要學科。這不在于你掌握TDD晨抡、BDD 或者其他一些測試方法氛悬,而是在最基礎的層面,你是否能夠編寫測試代碼來進行自動化測試耘柱。

許多Java 開發(fā)人員都會編寫單元測試和集成測試代碼如捅,這些測試代碼在構(gòu)建時自動運行。開發(fā)者主要借助一些持續(xù)集成工具來編寫測試代碼调煎,比如 Jenkins 或者 TeamCity镜遣。

你是否對此充滿疑慮:為什么程序員應該關注自動化測試?事實上士袄,隨著DevOps 的出現(xiàn)和普及悲关,自動化測試的重要性正在呈指數(shù)增長。

公司通常更喜歡那些擅長編寫單元測試的程序員娄柳,如果程序員還熟悉各種單元測試框架寓辱、庫和工具那就更好了。比如JUnit赤拒、Selenium秫筏、REST-Assured、Spock 框架等挎挖。

作為一名Java 開發(fā)者这敬,我們需要從事各種截然不同的工作。比如蕉朵,編寫核心 Java 代碼崔涂、創(chuàng)建 JSP 頁面、編寫 REST API始衅、甚至編寫 Groovy 腳本用于自動化構(gòu)建冷蚂。我們還需要了解不同的工具來進行自動化測試缭保。

例如,之前很長的一段時間我只知道JUnit帝雇。后來我不得不測試 JSP 頁面涮俄,當我了解了 Selenium 之后頓時豁然開朗。REST Assured 也一樣尸闸,我通常使用 curl 指令測試我的REST API 彻亲,它將 REST API 的單元測試提升到了一個新的級別。

我認為一名優(yōu)秀的程序員需要學會使用和利用工具吮廉,因此我經(jīng)常利用空閑時間學習和探索各種新的工具和庫苞尝,本文將展示一部分我所熟知的工具。

在本文中宦芦,我將分享10個最好的工具宙址、框架和庫,以幫助 Java 開發(fā)人員在不同的 Java 項目中更好地執(zhí)行單元測試和集成測試调卑。

JUnit

JUnit 應該不需要過多介紹抡砂。哪怕你是一位 Java 初學者,我想你也應該聽說過它恬涧,它能夠讓你為 Java 代碼編寫單元測試注益。

幾乎所有常用的IDE,比如 Eclipse溯捆、NetBeans 和 IntelliJ丑搔,都能夠集成 JUnit,這意味著開發(fā)者直接可以在這些 IDE 中編寫并運行單元測試提揍。

目前大多數(shù)人仍然在使用JUnit 4啤月,事實上新的 JUnit 5 已經(jīng)發(fā)布。你可以用 JUnit 進行單元測試和集成測試劳跃,此外谎仲,它還支持 Java 8 功能。

REST Assured

相比于Groovy 這類動態(tài)語言刨仑,在 Java 中測試和驗證 REST 服務更難强重。

REST Assured 為 Java 帶來了這些語言的簡單性。這對于 REST API 集成測試來說是一個很好的工具贸人。

Selenium

Selenium 應該是最受歡迎的 Java UI 測試工具,有了它佃声,你不需要在瀏覽器中啟動 JSP 頁面即可對其進行測試艺智。

你可以使用JUnit 和 Selenium 來測試 Web 應用程序 UI。還可以使用它進行 Web 應用程序驗收測試圾亏。

TestNG

TestNG 這款測試框架最早源于 JUnit 和 NUnit 的啟發(fā)十拣,但它在這兩者的基礎上引入了許多新的功能封拧,其功能更強大,也更易于使用夭问,提供了注解功能泽西,支持在任意大型線程池中運行各種可用策略的測試(所有方法都在自己的線程中,每個測試類對應一個線程)缰趋。

隨著JUnit 4 中注解功能的引入以及 Hamcrest 框架的整合捧杉,JUnit 4 和 TestNG 之間的差距已經(jīng)很小。

Mockito

Java 有許多 Mock 框架,例如 PowerMock 和 JMock,但我個人更喜歡 Mockito钥飞,它具有簡單的 API互订、優(yōu)秀的文檔以及大量示例。

Mock 測試是現(xiàn)代單元測試的關鍵技術之一扑馁,開發(fā)者不需要依賴其他情況也可獨立測試代碼,因此我建議每個 Java 開發(fā)人員都應該學習 Mock 框架來與 JUnit 結(jié)合使用。

我個人最喜歡的Mock 框架是 Mockito熔脂,如果你喜歡的話,也可以了解一下 PowerMock或者 JMock柑肴。

Spock 框架

Spock 是一款用于 Java 和 Groovy 應用程序的測試和規(guī)范框架霞揉。它用 Groovy 編寫,因此它具有很強的表現(xiàn)力嘉抒,并且非常規(guī)范零聚。

使用Spock 時,測試將變得更加易讀易維護些侍。此外隶症,得益于它的 JUnit 運行器,Spock能夠兼容大多數(shù) IDE岗宣、構(gòu)建工具和持續(xù)集成服務器蚂会。

不過遺憾的是,線上講述Spock 框架的課程好像不多耗式,“使用 Spock 進行 Java 測試”這本書倒是一個不錯的學習資源胁住。

Cucumber

Cucumber 是一款很好的自動化集成測試工具,與其他同類工具相比刊咳,它的規(guī)范功能是一大特色彪见。

Cucumber 將規(guī)范和測試文檔合并為一個文檔,由于文檔也會被 Cucumber 自動測試娱挨,因此規(guī)范文檔始終會被更新為最新版本余指。

Spring 測試

Spring MVC 自帶了一個非常有用的測試框架,可以在不涉及 Web 容器的情況下進行深入測試跷坝。

這個是一個非常有用的庫酵镜,可以為Spring 應用程序編寫自動化測試碉碉。它為 Spring 應用程序(包括 MVC 控制器)編寫單元和集成測試提供了強有力的支持。

還有一個Spring Test DbUnit淮韭,它將 Spring 測試框架與 DbUnit 以及 HtmlUnit 集成在了一起垢粮。

使用這些工具,你可以輕松完成Spring MVC 應用程序的自動化測試靠粪。

DBUnit

對于大多數(shù)的Java 應用程序蜡吧,不管是核心 Java 程序還是 Java Web 應用,數(shù)據(jù)庫都是其不可或缺的重要組成部分庇配,并且數(shù)據(jù)庫還很可能是單元測試的最大障礙斩跌。

連接到Dev 或者 UAT 數(shù)據(jù)庫進行集成測試是不可靠的,因為任何人都可以更改數(shù)據(jù)和模式捞慌,比如表和存儲過程耀鸦,這都會導致自動化集成測試的失敗。

DbUnit 是 JUnit 的擴展啸澡,在每次集成測試之前它可以將數(shù)據(jù)庫初始化為已知狀態(tài)袖订,從而確保數(shù)據(jù)庫包含正確的數(shù)據(jù)。

DbUnit 是一個非常有用的工具嗅虏,它可以幫助我們將測試數(shù)據(jù)和測試代碼分開洛姑。

Robot 框架

Robot 框架是一個基于 Python 的通用自動化測試框架,主要用于驗收測試以及驗收測試驅(qū)動開發(fā)皮服。

它采用表格測試數(shù)據(jù)語法楞艾,是一個關鍵字驅(qū)動的測試框架。分布式異構(gòu)應用程序的驗證往往需要多種技術和接口龄广,非常適合用Robot 來測試硫眯。

總結(jié)

以上就是本文介紹的所有針對Java 開發(fā)者的單元測試以及集成測試的工具、框架和庫择同。

還有更多的庫并沒有包含在這個列表中两入,例如AssertJ 和 Hamcrest,它們可以幫助你寫出漂亮且流暢的測試程序敲才。

面對如此多的工具裹纳,你應當先學習那些與你日常工作最相關的。例如紧武,如果你的工作主要涉及Java UI剃氧,那么你應該最先學習 Selenium,然后再學習其他工具來擴展和提升自己阻星。

類似的她我,如果你正在使用REST API,那么最好先學習 REST Assured。如果你主要從事核心 Java 工作番舆,那么你最先學習的應該是 JUnit 5。


(這是小編自己建的一個學習交流群:164549428矾踱,群里可免費領取學習資料恨狈,有興趣的小伙伴可以加一下哦!另外詳情可咨詢微dingyu-003哦!)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呛讲,一起剝皮案震驚了整個濱河市禾怠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贝搁,老刑警劉巖吗氏,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雷逆,居然都是意外死亡弦讽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門膀哲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來往产,“玉大人,你說我怎么就攤上這事某宪》麓澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵兴喂,是天一觀的道長蔼囊。 經(jīng)常有香客問我,道長衣迷,這世上最難降的妖魔是什么畏鼓? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蘑险,結(jié)果婚禮上滴肿,老公的妹妹穿的比我還像新娘。我一直安慰自己佃迄,他們只是感情好泼差,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呵俏,像睡著了一般堆缘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上普碎,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天吼肥,我揣著相機與錄音,去河邊找鬼。 笑死缀皱,一個胖子當著我的面吹牛斗这,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啤斗,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼表箭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钮莲?” 一聲冷哼從身側(cè)響起免钻,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崔拥,沒想到半個月后极舔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡链瓦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年拆魏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澡绩。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡稽揭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肥卡,到底是詐尸還是另有隱情溪掀,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布步鉴,位于F島的核電站揪胃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氛琢。R本人自食惡果不足惜喊递,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阳似。 院中可真熱鬧骚勘,春花似錦、人聲如沸撮奏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畜吊。三九已至泽疆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玲献,已是汗流浹背殉疼。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工梯浪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓢娜。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓挂洛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親恋腕。 傳聞我的和親對象是個殘疾皇子抹锄,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 老話說得好:工欲善其事,必先利其器荠藤。測試是應用程序生命周期里至關重要的一步,應用程序在進行最后的部署之前获高,需要通過...
    卑微小徐在線敲代碼閱讀 261評論 0 1
  • 前言 最近小組里面引進了Spock這個測試框架哈肖,本人在實際使用了之后,體驗非常不錯念秧,本篇文章一是為了鞏固輸入的知識...
    Richard_易閱讀 1,417評論 0 8
  • 簡介 1. 單元測試框架 幾乎所有的主流語言淤井,都會有其對應的單元測試框架,下面簡單介紹一下python,java,...
    阿呆0412閱讀 31,630評論 0 15
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒摊趾。表情可以傳達很多信息币狠。高興了當然就笑了,難過就哭了砾层。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,099評論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者漩绵,不喜歡去冒險,但是人生放棄了冒險肛炮,也就放棄了無數(shù)的可能止吐。 ...
    yichen大刀閱讀 6,052評論 0 4