在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Junit4入門之如何編寫好的測試類

    Junit4入門之如何編寫好的測試類

    Junit4入門之如何編寫好的測試

    本節(jié)可以選擇性瀏覽,跳過也不影響單元測試的學習使用。

    在使用junit前, 我們需要了解一些規(guī)則,如何去寫好一個測試類。

    之所以放在junit前說明,是因為單元測試不一定只能用junit去做,就算我們什么軟件依賴都不用,也是可以做的,就是會麻煩點,不要下意識的覺得單元測試=Junit,應該是單元測試 > Junit。

    市面上單元測試并不是只有junit一家的,還有許多其他的框架模塊,只是相比之下它們沒有junit普及。而且有些公司還有內部的單元測試框架,也未必是基于junit開發(fā)的。

    甚至必要的時候,哪怕不用Juint,也要進行單元測試,這就只能用Java原生的斷言語句等等了。

    1)java中斷言(assert)的使用

    一開始我以為斷言是junit中的特色,其實不然,斷言是一個編程術語,常用于單元測試中,甚至它都并不只存在于java。

    而java中的斷言,是在JDK1.4后開始使用的,關鍵字是assert,它主要是用在代碼開發(fā)和測試時期,用于對某些數(shù)據(jù)進行預期判斷,如果結果不符合自己的預期,程序就警告或退出。

    它的語法大概如下:

    語法①:assert condition

    condition代表一個布爾類型的條件表達式,如果為真,就繼續(xù)正常運行,如果為假,則異常退出

    public static void main(String[] args) { double x = Math.abs(-123.45); assert x >= 0; System.out.println(x);}

    這里我斷言x>=0,如果計算結果符合我的預期則無事發(fā)生,如果計算結果x小于0,則不符合我的預期,斷言失敗,拋出AssertionError。

    語法②:assert condition : message

    condition和上面是一樣的,冒號后的message通常用于斷言失敗后的異常提示信息,它就是個傳入到AssertionError構造參數(shù)里的值,用于我們自定義錯誤詳情的,這里就不放代碼了,大家可以自己試試。

    關于使用斷言還有個最重要的規(guī)則:程序的任何行為都不能依賴斷言,千萬不要把斷言當成程序中的邏輯來使用,也就是你的代碼即便刪除里面所有的斷言語句,它的邏輯和之前也是不能有任何變化的。因為它只是用于測試和開發(fā)的,甚至JVM默認都是關閉斷言使用的,如果沒有開啟斷言,程序會自動忽略所有斷言語句,仿佛它們并不存在,要執(zhí)行assert語句,必須給Java虛擬機傳遞-enableassertions(可簡寫為**-ea**)參數(shù)啟用斷言,也可以使用-disenableassertion(簡寫為**-da)參數(shù)關閉斷言**(默認就是關閉的)。

    最后,雖然java有提供斷言,但我們實際開發(fā)中卻很少使用它,因為如果要使用它去測試,還不如直接用Junit框架去寫單元測試的代碼,Junit也提供了斷言的語句。

    雖然我們用不上java里的斷言,但是也要有所了解,并且大部分的斷言其實邏輯都是差不多的。

    鄭重聲明:本文內容及圖片均整理自互聯(lián)網,不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月12日 14:29
    下一篇 2022年6月12日 14:29

    相關推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息