Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

@Java 開發者,2019 要先學點啥?

有答曰:“學習千萬條,自動化測試第一條”。如今,“自動化測試的重要性正在呈指數級增長”,而本文便重點介紹了 10 大出色的測試框架、工具和庫,幫助提高你的自動化測試技能!

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

作者 | javinpaul

譯者 | 姜松浩

出品 | CSDN(ID:CSDNNews)

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

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

許多 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 的單元測試提升到另一個級別。

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

JUnit

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

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

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

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

鏈接:https://www.udemy.com/junitandmockitocrashcourse/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

REST Assured

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

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

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

鏈接:https://www.udemy.com/api-testing-rest-api-automation-testing-from-scratch/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

Selenium

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

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

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

鏈接:https://www.udemy.com/selenium-real-time-examplesinterview-questions/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

TestNG

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

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

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

鏈接:https://www.udemy.com/testng-complete-bootcamp/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

Mockito

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

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

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

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

鏈接:https://www.udemy.com/mockito-tutorial-with-junit-examples/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

Spock Framework

Spock 是 Java 和 Groovy 應用程序的另一個測試和規範框架。它是用 Groovy 編寫的,這使其成為一種非常有表現力的點對點規範語言。

當你使用 Spock 時,你的測試將變得更加易讀並且更加易於維護,並且由於其利用 JUnit 運行程序,Spock 與大多數 IDE、構建工具和持續集成服務器兼容。

不幸的是,我沒有找到 Spock 框架有用的學習課程,但是《Java Testing with Spock》這本書可以算是一個很好的上手資源。

鏈接:https://www.amazon.com/Java-Testing-Spock-Konstantinos-Kapelonis/dp/1617292532/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

Cucumber

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

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

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

鏈接:https://www.udemy.com/automate-tests-using-selenium-webdriver-with-java-cucumber/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

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。

鏈接:https://www.udemy.com/testing-spring-boot-beginner-to-guru/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

DBUnit

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

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

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

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

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

Robot Framework

Robot Framework 是一個基於 Python 的通用自動化測試框架,用於驗收測試和驗收測試驅動開發。

它是一個關鍵字驅動的測試框架,使用表格測試數據語法。你可以使用它來測試分佈式異構應用程序,其中驗證需要涉及多種技術和接口。

如果你決定學習這個用於集成測試的出色框架,那麼 Udemy 的 Robot Framework Test Automation 是一個很好的上手資源。

這是一個由兩部分組成的課程,涵蓋了 Robot Framework 的基本和高級功能。

鏈接:https://www.udemy.com/robot-framework-level-1/

Top 10 盤點:2019 Java 開發者必學的測試框架、工具和庫!

結論

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

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

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

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

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

P.S. 如果你只想從 JUnit 和 Mockito 開始,我認為 JUnit and Mockito crash course 是最好的開始。

原文:https://medium.freecodecamp.org/these-are-the-top-testing-tools-libraries-and-frameworks-for-java-developers-8c0e3f9bc11d

本文為 CSDN 翻譯,如需轉載,請註明來源出處。作者獨立觀點,不代表 CSDN 立場。


分享到:


相關文章: