乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JAVA 程序員需要用到 10 個測試框架和庫

       漢無為 2018-09-10

      最近我寫了一些文章,關(guān)于 Java 程序員今年應(yīng)該學(xué)習(xí)什么,例如編程語言,庫和框架等,如果只能學(xué)習(xí)或提高其中一項,那必然是自動化測試技能。

      測試是專業(yè)程序員區(qū)別于業(yè)余程序員的一項指標(biāo),作為專業(yè)程序員,并非必須采用 TDD,BDD 或其它測試方法論,但最低標(biāo)準(zhǔn)是通過編寫代碼的方式,來自動化測試自己的代碼。

      許多 Java 程序員編寫單元測試和集成測試,使用 Jenkins、TeamCity 等持續(xù)集成工具,在構(gòu)建階段自動運行。

      如果還有人對程序員是否應(yīng)該關(guān)注自動化測試存有疑問,那么讓我來回答,隨著 DevOps 理念的增強和角色的涌現(xiàn),自動化測試的重要性正在呈指數(shù)型增長。

      企業(yè)通常青睞那種擅長編寫單元測試的程序員,這些程序員對各種單元測試框架、庫和工具有著豐富的知識,比如 JUnit,Selenium,REST-Assured,Spock 框架等。

      作為 Java 程序員,我們在截然不同的領(lǐng)域工作,從編寫 Java 核心代碼到 JSP 頁面,REST API,甚至有時為了構(gòu)建自動化而去編寫 Groovy 腳本,這就要求我們必需了解不同的自動化測試工具。

      舉一個例子,很長一段時間內(nèi),我只了解 JUnit,但當(dāng)不得不測試 JSP 頁面時,我卻束手無策,直到我找到了 Selenium。REST Assured 是另一個類似的例子,我通常使用 curl 命令測試 REST API,但 REST Assured 將 REST API 的單元測試水平提升到了另一個層次。

      Java 程序員需要用到十大單元測試和自動化集成測試工具

      我認(rèn)為一個優(yōu)秀的程序員,必然能夠很好地利用手頭上的工具,因此我總在業(yè)余時間學(xué)習(xí)和探索新的工具和庫,以下列表是我部分研究成果。

      在這篇文章中,我將分享 10 個最為優(yōu)秀且必不可少的工具,框架和庫,這些可以幫助 java 程序員在各類 java 項目中編寫單元測試和集成測試。

      JUnit

      JUnit 無須贅述,即便是初級Java程序員,可能也已經(jīng)聽說過它,你可以使用它編寫 Java 代碼的單元測試。

      幾乎所有主流 IDE,例如 Eclipse,NetBeans 和 IntelliJ,都集成了 JUnit,可以直接在這些IDE中編寫和運行單元測試。

      大多數(shù)人仍在使用 JUnit 4,即使 JUnit 5 已經(jīng)發(fā)布,它很可能是今年下一個熱點。通過 JUnit 5,可以將 JUnit 同時應(yīng)用于單元測試和集成測試,并且它還支持 Java 8 的特性。

      JAVA 程序員需要用到 10 個測試框架和庫

      REST Assured

      用 Java 語言測試和驗證 REST 服務(wù),要難于 Groovy 這類動態(tài)語言。

      REST Assured 將這類語言的易用性帶入了 Java 領(lǐng)域,是一個優(yōu)秀的 REST API 的集成測試工具。

      JAVA 程序員需要用到 10 個測試框架和庫

      Selenium

      Selenium 很可能是最流行的 Java UI 測試工具了,它可以讓你在不必啟動瀏覽器的情況下測試 JSP 頁面。

      你可以使用 JUnit 和 Selenium 來測試 Web 程序的界面,它甚至允許你編寫 Web 應(yīng)用程序的驗收測試。

      JAVA 程序員需要用到 10 個測試框架和庫

      TestNG

      TestNG 是一個測試框架,其靈感來自 JUnit 和 NUnit,但同時引入了一些新的功能,使其功能更強大,使用更方便。例如可以使用注解,在任意大的線程池中,配置各種可用策略進行測試(例如所有方法都在自己的線程中,每一個測試類使用一個線程等)。

      因為 TestNG 使用 JUnit 4 的注解,同時又集成了 HAMCSTREST 匹配器,它與 JUnit 的差異已經(jīng)減小了,但兩者如何選擇,這取決于你。

      JAVA 程序員需要用到 10 個測試框架和庫

      Mockito

      Java 類有許多 Mock 框架,例如 PowerMock 和 JMock,但我個人偏向于 Mockito,因為它有簡單的 API,優(yōu)秀的文檔以及大量的示例。

      Mocking 是現(xiàn)代單元測試的一項關(guān)鍵技術(shù),因為它允許你在沒有任何依賴的情況下獨立測試代碼,這就是為什么我鼓勵每個 Java 程序員在學(xué)習(xí) JUnit 的同時,一起學(xué)習(xí) Mocking 框架的原因。

      我最喜歡的 mocking 框架是 Mockito,但如果你愿意,也可以研究下 PowerMock 或 JMock。

      Spock框架

      Spock 是另一個測試和規(guī)范框架,用于 Java 和 Groovy 應(yīng)用程序。由于使用 Groovy 編寫,Spock 成為一種兼具豐富表現(xiàn)力且簡明扼要的規(guī)范語言。

      當(dāng)你使用 Spock 時,你的測試將變得更容易閱讀和維護,這得益于它采用的 JUnit 運行器,Spock 兼容大部分 IDE,構(gòu)建工具和持續(xù)集成服務(wù)器。

      可惜我沒有找到有助于學(xué)習(xí) Spock 框架的課程,但閱讀《Java Testing with Spock》這本書是很好的開始。

      JAVA 程序員需要用到 10 個測試框架和庫

      Cucumber

      Cucumber 是另一個重要的自動化集成測試工具,但與其它同類別的工具不同的是它能夠針對規(guī)格文檔進行自動化測試。

      Cucumber 將規(guī)格文檔和測試文檔合成整個動態(tài)文檔,同時 Cucumber 自動測試這個文檔,使測試規(guī)范始終保持在最新版本。

      JAVA 程序員需要用到 10 個測試框架和庫

      Spring Test

      Spring MVC 自帶一個很有用的測試框架,它可以在不引入 Web 容器的情況下進行深入測試。

      Spring Test 是為 Spring 程序編寫自動化測試的最有用的庫之一。為了給 Spring 驅(qū)動的應(yīng)用程序(包括 MVC 控制器在內(nèi)),編寫單元測試和集成測試,Spring Test 提供了一流的支持。

      另外,Spring Test DbUnit 集成了 Spring Test 框架與 DbUnit;Spring Test MVC HtmlUnit 集成了Spring Test MVC 框架和 HtmlUnit。

      通過使用這些工具,你可以輕松地自動測試 Spring MVC 應(yīng)用程序。

      DBUnit

      數(shù)據(jù)庫是許多 Java 應(yīng)用程序,包括核心 Java 和 Web 應(yīng)用程序中不可或缺的部分,也有可能是單元測試的最大障礙。

      在進行集成測試時,連接開發(fā)環(huán)境或用戶驗收測試的數(shù)據(jù)庫并不可靠,因為任何人都可以更改數(shù)據(jù)模式和數(shù)據(jù)本身,例如表和存儲過程等,這會導(dǎo)致自動化集成測試失敗。

      DbUnit 是一個 JUnit 擴展,每次集成測試前,將數(shù)據(jù)庫初始化成已知狀態(tài),確保數(shù)據(jù)庫存儲正確的數(shù)據(jù)。

      DbUnit 自身還存在著一些問題,但它是一個非常有用的工具,因為它可以幫助我們分離測試數(shù)據(jù)與測試代碼。

      JAVA 程序員需要用到 10 個測試框架和庫

      Robot 框架

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

      它是一個由關(guān)鍵字驅(qū)動的,使用表格測試數(shù)據(jù)語法的測試框架,可以用來測試那些涉及多種技術(shù)和接口的分布式異構(gòu)應(yīng)用。

      如果你打算學(xué)習(xí)這個優(yōu)秀的集成測試框架,那么你可以從 Udemy 上的《Robot 框架測試自動化》的課程開始,這是一個很好的學(xué)習(xí)資源。

      該課程涵蓋了兩部分內(nèi)容,Robot 框架基礎(chǔ)和高級特性。

      JAVA 程序員需要用到 10 個測試框架和庫

      結(jié)論

      以上列舉了Java 程序員需要用到的單元測試和集成測試工具,框架和庫。

      還有很多庫沒有包括在這個列表中,例如 AssertJ 和 Hamcrest,它們可以幫助你寫出漂亮且流暢的測試,但學(xué)習(xí)需要一步步來。

      首先,學(xué)習(xí)一個可以應(yīng)用于日常工作的工具或庫。 例如,如果你正在使用 Java UI,那么首先應(yīng)該學(xué)習(xí) Selenium,這樣你可以有更多時間專注在這個工具上。

      同樣的,如果你的工作內(nèi)容是 REST API,請學(xué)習(xí) REST Assured(參閱 REST with Spring);如果你正在做很多核心 Java 的工作,那么 JUnit 5 可能是你首先需要關(guān)注的庫。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多