成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面向Java開發人員的十種測試框架庫

譯文
開發 后端
本文所提及到的十種優秀的基礎工具、框架和庫,都有助于Java開發人員根據各自手頭的項目,編寫出各種單元與集成測試。

【51CTO.com快譯】引言:您想提升自己的自動化測試能力嗎?這里為您提供了10款優秀的測試框架庫,以及它們的***用例。

測試能力可謂是鑒別專業開發人員與業余新手的利器。它不僅體現在是否能遵循TDD(Test-Driven Development,測試驅動開發)、BDD(Behavior-Driven Development,行為驅動開發)或其他任何測試方法,而且反映了您是否具有編寫出能夠自動測試軟件代碼的能力。

如今,許多Java開發人員主要通過使用持續集成的工具(如Jenkins或TeamCity),編寫出會在構建時就能自動運行的各種單元與集成測試程序。

如果在您的身邊還有人對于“程序員為何應該關注自動化測試”存有疑問的話,那么可以告訴他:隨著DevOps的出現和對它認識的加深,業界對于自動化測試的重要性也在呈指數式增長中。

對于一般公司而言,通常會更傾慕那些擅長編寫單元測試的程序員們。因為他們熟悉各種單元測試的框架庫與工具,例如JUnit,Selenium,REST-Assured,Spock框架等。

作為一名Java開發人員,我們經常會涉及到一些截然不同的領域,例如:編寫核心的Java代碼、創建JSP頁面、編寫REST APIs、有時甚至會為了自動化的構建而創建一些Groovy腳本。這也是為什么我們還需要了解如何運用不同的工具來進行自動化測試的原因。

比如說:倘若我長期只知道使用JUnit,但是突然必須要測試JSP頁面時,我會完全沒有方向,更想不到要去尋找Selenium這樣的工具。同樣對于REST Assured來說,由于我通常會使用curl命令去測試自己的REST API,殊不知REST Assured會將REST API的單元測試帶到另一個層次上。

面向Java程序員的十種單元與集成測試工具

工欲善其事,必先利其器。我一直認為這句話對于程序員也是適用的。因此,我經常會在閑暇的時候去發掘、嘗試、學習和探索一些新的工具和各種庫,下面我將列出自己所收集到的一些工具。

本文所提及到的十種優秀的基礎工具、框架和庫,都有助于Java開發人員根據各自手頭的項目,編寫出各種單元與集成測試。

1.JUnit

我不認為我需要對Junit做任何介紹。即使您是Java編程的初學者,也一定聽說過它的大名。它可以讓您為Java代碼編寫出相應的單元測試程序。

幾乎所有的主流集成開發環境(IDE),如Eclipse,NetBeans和IntelliJ都提供了對Junit的集成,這就意味著您可以在這些IDE環境中寫入并運行單元測試。

雖然JUnit 5如今已經發布了,但是大多數人至今仍然在使用JUnit 4。不過今年可能會有下一個版本面世。您可以將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發展而來的測試框架,不過它引入了許多新的功能,而且更為易用。例如:annotations(請見http://javarevisited.blogspot.hk/2012/06/junit4-annotations-test-examples-and.html#axzz56lq0jrxn)可以讓您在任意大的線程池中,運行各種可用策略的測試(將所有方法都放在自己的線程之中,每個線程對應一個測試類)。

通過使用JUnit 4中的annotations,可以彌補JUnit和TestNG之間的差距。另外只要您愿意,還可以去整合Hamcrest的匹配器。 

5.Mockito

在Java的類庫中,有著許多諸如PowerMock和JMock的mocking(模擬)框架。我個人比較喜歡Mockito,因為它有著簡單的API,完善的文檔和大量的示例。

Mocking是如今單元測試的一種關鍵技術,它允許您在沒有任何依賴性的情況下,獨立地測試自己的代碼,這也就是為什么我鼓勵每個Java開發人員在學習Junit時一并掌握mocking框架的原因。

雖然我力推Mockito,這一mocking框架。當然如果您有興趣,也可以去試試PowerMock或JMock。

6.Spock Framework

Spock是針對Java和Groovy應用的另一種測試和規范框架。它是由Groovy編寫的,因此具有很強的表達性,而且是一種極其規范的語言。

通過使用Spock,您的測試程序會變得更加易讀、且容易維護。受益于Junit的運行程序,Spock能夠與大多數IDE、構建工具、以及持續集成類型的服務器相兼容。

可惜的是,我沒能在網上找到任何有關Spock框架的學習課程。當然您可以通過《使用Spock進行Java測試》(https://www.amazon.com/Java-Testing-Spock-Konstantinos-Kapelonis/dp/1617292532/ref=as_at?creativeASIN=1617292532&linkCode=w61&imprToken=MfCu8SgYHitGBTnYpPUhiw&slotNum=0&tag=javamysqlanta-20)一書來作為上手的***步資料。 

7.Cucumber

Cucumber是自動化集成測試的另一種常用工具,它與其他同類工具的不同之處是其規范能力。

Cucumber將規范和測試文檔合并為一個可被Cucumber自動測試的整體,從而保證了您的規范文檔一直是***的。 

8.Spring Test

Spring MVC是一種非常有用的測試框架,它可以在不涉及Web容器的情況下,進行深層次的測試。

對于編寫針對Spring應用的自動化測試來說,它是一種非常有用的庫。如果您想對包括MVC控制器在內的基于Spring的應用,進行單元與集成測試的話,它能夠提供***的支持。

還有一種Spring Test DbUnit,它是將具有DbUnit的Spring Test框架和具有HtmlUnit的Spring Test MVC集成在了一起。

通過使用上述這些工具,您可以輕松地以自動化的方式去測試各種Spring MVC應用程序。

9.DBUnit

通常,數據庫是許多Java應用程序(包括核心Java和Web應用)不可或缺的組成部分,當然它可能也是單元測試中的***障礙。由于任何人都可以去更改數據、模式(schema)、表、甚至是存儲過程,因此連接到Dev或UAT數據庫上進行集成測試往往是不可靠的,而且很容易導致自動化集成測試的失敗。

DbUnit是JUnit的一個擴展,它可以被用于在每次集成測試之前,將數據庫初始化為一種已知的狀態,以確保數據庫包含著正確的數據。

DbUnit雖然也有其自身的問題,但是它能夠幫助我們將創建測試數據從測試代碼里分離出來,所以它仍是一款非常實用的工具。 

10.Robot Framework

Robot Framework是一種通用的基于Python的測試自動化框架,它可以被用于驗收測試和測試驅動的開發。

它是一種將表格測試數據作為語法、以關鍵字作為驅動的測試框架。您可以使用它來測試分布式的異構應用程序,其中驗證部分需要涉及到多種技術與接口。

如果您想學習該集成測試框架,那么可以將Udemy網站的Robot Framework測試自動化(https://www.udemy.com/robot-framework-level-1/?siteID=JVFxdTr9V80-V8cQwgaw3imzy3q58cwXSQ&LSNPUBID=JVFxdTr9V80)作為一個很好的開端。這是一個涵蓋了Robot framework基本與高級功能的兩部分課程。 

結論

上述就是面向Java開發人員的一些基本性的單元與集成測試的工具、框架庫。

當然還有一些我尚未列舉到的庫,例如AssertJ和Hamcrest。只要您愿意花時間去研究,它們都可以幫助您寫出***且流暢的測試代碼。

我的經驗是:您可以找一種在您的日常工作中經常會接觸到的工具或庫,然后開始學習。例如:倘若您正在使用Java UI,就應該首先學習Selenium,因為您會更為廣泛和深入地使用到該工具。同樣,如果您正在使用REST APIs,就請先學習REST Assured,并請參閱REST with Spring(http://www.baeldung.com/rest-with-spring-course?utm_source=javarevisited&utm_medium=web&utm_campaign=rws&affcode=22136_bkwjs9xa)。如果您經常接觸核心的Java工作,那么您可能需要先開始學習JUnit 5庫了。

原文標題:Top 10 Testing Frameworks and Libraries for Java Developers,作者:Javin Paul

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2023-03-13 14:58:40

2021-11-21 22:43:10

Java開發框架

2015-09-15 10:42:06

2018-06-26 09:00:00

前端WebAngular

2016-10-14 19:30:21

云計算云數據庫數據庫

2016-11-09 13:46:00

云數據庫

2016-10-18 10:45:00

開發開源

2015-06-04 14:41:37

WebPython框架

2022-04-20 10:56:06

JavaJVM參數

2019-02-22 10:11:48

Java開發代碼

2021-11-02 08:54:10

開發編程測試

2021-11-06 23:07:47

開發網站編程

2020-08-29 19:11:30

Java開發GitHub

2024-02-21 08:00:00

機器學習Java大語言模型

2015-06-26 09:34:29

CSS開發框架及工具

2019-01-28 08:00:00

Node.JSWeb框架前端

2022-11-02 14:43:29

2011-03-31 10:22:41

Java開發

2021-04-21 08:26:16

JavaSpring框架開發

2023-08-03 17:09:25

測試工具優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天操人人干 | 亚洲成人综合在线 | 午夜影视大全 | 国产精品国产三级国产aⅴ中文 | 欧美精品一区二区三区四区五区 | 免费一级片 | 99免费精品 | 久久伊人影院 | 欧美日韩国产在线观看 | 中文字幕成人在线 | 一区中文字幕 | 久久精品亚洲精品国产欧美 | 在线观看中文字幕 | 国产精品视频网站 | 欧美精品一区二区三区四区 在线 | 国产成人精品一区二区三 | 中文字幕一级 | 青青草国产在线观看 | 午夜久久久久久久久久一区二区 | 欧美日韩成人影院 | 日韩不卡在线 | 亚洲第一av| 欧美久久久久 | 亚洲精品乱码久久久久久蜜桃91 | 日本一二区视频 | 岛国在线免费观看 | 国产福利资源在线 | 久久精品欧美一区二区三区不卡 | 日韩中文字幕在线不卡 | 久久精品国产免费看久久精品 | 亚洲国产精品一区二区三区 | 亚洲国产精品人人爽夜夜爽 | 91亚洲国产亚洲国产 | 黄色大片在线 | 岛国av免费在线观看 | 九九视频在线观看视频6 | 91精品国产综合久久久久久丝袜 | 日本精品一区二区三区在线观看视频 | 久久精品99久久 | 酒色成人网 | 亚洲国产二区 |