純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

關於 Java 開發人員今年應該學習什麼的問題,答案可能包括編程語言、庫和框架,但如果你只需要改進或學習一件事,那麼這必定是你的自動化測試技能。

測試是將專業開發人員與業餘開發人員分開的訓練之一。這裏說的並不是 TDD、BDD 或任何測試方法,但你至少要可以編寫代碼來自動測試代碼。

許多 Java 開發人員在構建期間,編寫自動運行的單元測試和集成測試,主要是使用 Jenkins 或 TeamCity 等持續集成工具。

爲什麼程序員應該專注於自動化測試?事實上,由於關注度日益提升,更多的 DevOps 開始出現,自動化測試的重要性呈指數級增長。

公司通常更偏愛擅長編寫單元測試並且熟悉各種單元測試框架、庫和工具的程序員,例如 JUnit、Selenium、REST-Assured、Spock框架等。

作爲 Java 開發人員,我們致力於差異非常大的領域,從編寫核心 Java 代碼到創建 JSP 頁面、編寫 REST APIs,有時甚至會創建用於構建自動化的 Groovy 腳本。這就是爲什麼我們還需要了解我們可以用來自動化測試的不同工具。

我相信好的程序員,必定離不開好用的工具,所以我總是在空閒時間嘗試學習和探索新的工具和庫。在本文中,我將分享 8大最好且必不可少的工具、框架和庫,它們可以幫助 Java 開發者在各種 Java 項目上編寫單元測試和集成測試。

1、JUnit

顯然,JUnit 不需要任何介紹。即使你是初學 Java 的程序員,大概率上你也有過耳聞——它允許你爲你的 Java 代碼編寫單元測試。

幾乎所有主要的 IDE,例如 Eclipse、NetBeans 和 IntelliJIDEA 都提供了 JUnit 集成,這意味着你可以直接從這些 IDE 上編寫和運行單元測試。

我們大多數人仍在使用 JUnit 4,但 JUnit 5 已經發布,可能是今年要關注的下一個東西。你可以用 JUnit 進行單元測試和集成測試,它還支持 Java 8 的特性。

順便說一下,如果你是單元測試世界的新手,特別是在 Java 單元測試方面,那麼 JUnit and Mockito crash course 這個課程會是一個很好的起點。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

2、REST Assured

在 Java 中測試和驗證 REST 服務比用動態語言(例如 Groovy)更難。

REST Assured 將使用這些語言的簡單性帶入了 Java 域。它是 REST API 集成測試的絕佳工具。

如果你想了解更多信息,還可以查看 REST API Testing Automation: via REST Assured & HTTP Client 這個課程。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

3、Selenium

Selenium 可能是最流行的 Java UI 測試工具,它允許你測試 JSP 頁面而無需在瀏覽器中啓動它們。

你可以使用 JUnit 和 Selenium 測試 Web 應用程序 UI。它甚至允許你編寫 Web 應用程序驗收測試。

如果你想學習 Selenium,Selenium WebDriver with Java — Basics to the Advanced這個課程是最好的開始。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

4、TestNG

TestNG 是一個受 JUnit 和 NUnit 啓發的測試框架,但是卻引入了許多新功能,使其功能更加強大,更加易於使用。例如註釋、在任意大線程池中運行測試並提供各種策略(所有方法都在自己的線程中,每個測試類一個線程)等等。

由於使用了 JUnit 4 中的註釋並集成了 Hamcrest 匹配器,這個測試框架與 JUnit 和 TestNG 之間的差距已經縮小,但是這取決於你的選擇。

如果你決定學習 TestNG 來測試你的 Java 代碼,那麼 TestNG Complete Bootcamp For Beginners — Novice To Ninja 會是一個很好上手的課程。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

5、Mockito

Java 類有許多模擬框架,例如 PowerMock 和 JMock。但是我個人喜歡 Mockito,因爲它具有簡單的 API、很棒的文檔還有很多例子。

Mocking(模擬)是現代單元測試的基本技術之一,因爲它允許你在沒有任何依賴性的情況下單獨測試代碼,這就是爲什麼我鼓勵每一個 Java 開發人員在 JUnit 之餘學一學 Mock 框架。

我最喜歡的模擬框架是 Mockito,但如果你願意,也可以探索 PowerMock 或 JMock。

如果你也喜歡 Mockito 並決定學習這個框架,那麼 Mockito Tutorial: Learn mocking with 25 Junit Examples 是一個很不錯的課程。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

由於機制問題,文章中站外鏈接不給查看,如需獲取測試框架的地址:

重要的事情說三遍,轉發、轉發、轉發後,加入Java進階架構交流:805685193。

6、Cucumber

Cucumber 是自動化集成測試的另一個很好的工具,但是其與同類別中的其他工具的不同之處就在於它的規範功能。

Cucumber 將規範和測試文檔合併爲一個連貫完整的活動文檔,因爲它們將由 Cucumber 自動測試,所以你的規範總是最新的。

如果你想構建一個 Start to Finish Web 自動化測試框架,並在 Web 應用程序上模擬用戶行爲,那麼 Selenium WebDriver with Java & Cucumber BDD 是一個很好的課程,可以幫助你在項目中學習和實現 Cucumber。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

7、Spring Test

Spring MVC 帶有一個非常有用的測試框架,允許在不涉及 Web 容器的情況下進行深入測試。

它是爲 Spring 應用程序編寫自動化測試的最有用的庫之一。它爲 Spring 驅動的應用程序(包括 MVC 控制器)編寫單元和集成測試提供了一流的支持。

還有一個 Spring Test DbUnit,它集成了 Spring Test 框架和 DbUnit;以及 Spring Test MVC HtmlUnit,集成了 Spring Test MVC 框架和 HtmlUnit。

通過使用這些工具,你可以輕鬆地以自動方式測試你的 Spring MVC 應用程序。

如果你想了解更多關於如何測試 Spring 應用程序的信息,我建議你看一下 John S Thompson 在 Udemy 上的課程 Testing Spring Boot: Beginner to Guru。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

8、DBUnit

數據庫是許多 Java 應用程序(核心 Java 應用程序和 Web 應用程序)不可或缺的一部分,這可能是進行單元測試時的最大障礙。

連接到 Dev 或 UAT 數據庫進行集成測試是不可靠的,因爲任何人都可以更改數據和架構,例如表和存儲過程,這將導致你的自動化集成測試失敗。

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

DbUnit 有自己的問題,但它是一個非常有用的工具,因爲它可以幫助我們將測試數據的創建與測試代碼分開。

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

由於機制問題,文章中站外鏈接不給查看,如需獲取以上乾貨的地址:

重要的事情說三遍,轉發、轉發、轉發後,加入Java進階架構交流:805685193。

總結

以上,就是對於 Java 開發者而言的一些基本單元測試和集成測試工具、框架和庫的全部內容。

很多庫我並沒有包含在此文中,例如 AssertJ 和 Hamcrest,儘管它們也可以幫助你寫出漂亮和流暢的測試,但是要慢慢來。

首先,學習一種可以在日常工作中使用的工具或庫。例如,如果你正在使用 Java UI,那麼你應該首先學習 Selenium,因爲那樣你就可以更多地關注這個工具。

同樣,如果你正在使用 REST API,那麼請學習 REST Assured(參見 REST with Spring);如果你正在做很多核心 Java 工作,那麼 JUnit 5 可能是你應該看的第一個庫。

最後,祝你的測試旅程順利!這當然不是一件容易的事情,但如果能遵循本指南和框架,你就離成爲一個專業程序員又近了一步。

最後

最後針對最近高頻常問面試題我還總結出了各大互聯網公司java程序員面試涉及到的絕大部分面試題及答案做成了文檔和學習筆記文件以及架構視頻資料免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習,也可以關注我一下以後會有更多幹貨分享。

程序員精選Java電子書及最新架構面試題(含答案)

純乾貨分享丨2019 Java 程序員必學的測試框架、工具和庫

 

再說一遍,由於機制問題,文章中站外鏈接不給查看,如需獲取以上乾貨的地址:

重要的事情說三遍,轉發、轉發、轉發後,加入Java進階架構交流:805685193。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章