說說Java單元測試

本文首發於我的微信公衆號《andyqian》,期待你的關注!

前言

有幾天沒有更新文章了。說假話,最近忙!說實話。最近懶!前一段時間,看了阿里出的《阿里巴巴Java開發手冊》以爲很是好。。有些簡直太有同感了。就好比:單元測試。建議你們都看看。嗯,咱們今天就來講說單元測試。java

什麼是單元測試?

說到單元測試,不少開發同窗很容易忽略。甚至認爲是測試才幹的事情。這裏須要糾正一下,對於單元測試,維基百科中是這樣描述的:算法

單元測試又稱爲模塊測試,是針對程序模塊(軟件設計中的最小單元)來進行正確性檢驗的測試工做。

看到沒?單元測試是正確性檢驗的測試工做。那麼作爲一個解決error的開發小哥。可不能把錯誤扔給測試同窗呀,這明顯就是挖坑嘛。數據庫

哪些地方須要寫單元測試?

在平常開發中,不要認爲寫單元測試帶來了額外的工做。看似下降了開發效率。實際上,這是很是重要的。也能給後期維護帶來好處。 大部分的bug也都能經過單元測試測試出來。
如下是須要寫單元測試的地方:微信

  1. 在Dao層,Service層中的每個方法都確保單元測試的經過。
    (咱們一般使用Mybatis做爲ORM框架,建議將SQL也能經過數據庫執行。這也是一種測試方式。)
  2. 在重要的算法,核心業務邏輯必須單元測試經過。

在單元測試中:咱們應儘可能保持測試方法的原子性。也就是說,單元測試粒度越小越好。框架

爲何要寫單元測試?

若是硬要說出寫單元測試的好處?那實在是太多了。最直接的好處,就是減小BUG了。ide

  1. 提升代碼質量。
  2. 提升代碼可讀性。
  3. 對本身代碼的一種負責。
    ….

在優秀的開源項目中,如Spring源碼中。咱們會發現有不少的單元測試。基本上每一個方法都有單元測試。咱們閱讀到難以理解的代碼時。運行一下單元測試,調試一下。也能很快理解!單元測試

怎麼寫單元測試?

在Java中,單元測試代碼應該寫在 src/test/java 目錄下,單元測試資源應該放在src/test/resources下。日常用的最多的單元測試框架就屬Junit了。目前最新的Junit版本已經更新到了JUnit 5了。但須要JDK版本在1.8及以上才能運行。若是須要支持在1.7版本的JDK中運行。咱們能夠選擇低版本的Junit。測試

下面爲官網的使用指南地址:ui

https://junit.org/junit5/docs/current/user-guide/spa

因爲篇幅緣由。這篇就不給案例了。下次再單獨寫一篇,如何編寫單元測試的吧。

單元測試的一點小建議


在《阿里巴巴Java開發手冊》中,關於單元測試給了咱們很是多實用的建議。這裏摘錄幾條,有興趣的童鞋。能夠下載閱讀更多:

  1. 保持單元測試的獨立性。爲了保證單元測試穩定可靠且便於維護,單元測試用例之間決不能互相調用,也不能依賴執行的前後次序。
  2. 單元測試是能夠重複執行的,不能受到外界環境的影響。
  3. 單元測試的基本目標:語句覆蓋率達到 70% ;核心模塊的語句覆蓋率和分支覆蓋率都
    要達到 100%。
  4. 在設計評審階段,開發人員須要和測試人員一塊兒肯定單元測試範圍,單元測試最好覆蓋全部測試用例( UC )。

…..

有不少公司,不只有設計評審。還有測試評審,也就是上面第4條所說的。開發人員和測試人員一塊兒評估測試範圍,以及測試用例。

最後

今天就要回家了,甚至有點小興奮。你們都何時放假回家呢?

PS: 公衆號內回覆 『阿里巴巴Java開發手冊』。便可獲取記念電子版一份。

 

這裏寫圖片描述

 掃碼關注,一塊兒進步

我的博客: http://www.andyqian.com

相關文章
相關標籤/搜索