使用JUnit測試預期異常

2022-03-25 16:13:54 字數 1331 閱讀 7996

/**

* 被測試類 */

public

class

student

}

@test註解有個乙個可選的引數,「expected」允許你設定乙個throwable的子類。如果你想要驗證上面的canvote方法丟擲預期的異常,我們可以這樣寫:

@test(expected = illegalargumentexception.class

)

public

void

canvote_throws_illegalargumentexception_for_zero_age()

使用junit框架中的expectedexception類,可以呼叫時丟擲的異常和異常的message進行精確的匹配,如果被單測方法沒有丟擲異常、丟擲的異常型別不正確、丟擲的異常的message不正確都將會被認為失敗。使用expectedexception類需要宣告expectedexception異常。

@rule

public expectedexception thrown = expectedexception.none();

有了上述的宣告,就可以在單測方法裡以更加簡單的方式驗證預期的異常:

@test

public

void

canvote_throws_illegalargumentexception_for_zero_age2()

使用expectedexception類不僅僅可以更加精確的對異常的屬性資訊進行匹配,還可以更加精確的找到異常丟擲的位置,比如上面的單測方法,如果不是在呼叫canvote方法丟擲異常,而是在初始化 student物件丟擲異常,將會引起測試失敗。

thrown.expect放在哪行,就表明預期該行以下的**段將會丟擲預期異常。這樣精確的測試**塊,避免被其他與考慮到但是丟擲同型別異常的**段誤導單測結果。

測試點:沒有丟擲異常或者丟擲的異常型別不正確

@test

public

void

canvote_throws_illegalargumentexception_for_zero_age3()

catch

(illegalargumentexception ex)

}

個人傾向於第三種方法(使用expectedexception類)可以精確匹配異常丟擲的位置 防止被其他**塊丟擲同樣的異常而誤導單測結果。

1. 使用junit測試預期異常

2.junit 判斷 是否有異常丟擲 異常型別是否正確 以及 異常的message 是否正確

JUnit三(異常測試)

異常測試是指可能希望測試 在給定無效輸入時丟擲正確的異常,這裡有兩種方法可以實現,第一種是將預期的exception新增到 test注釋中,另一種是在將預期的exception放在try catch中,下面分別給出兩個方法的實現 public class junitdemo1test test ex...

JUnit編寫異常測試的Testcase

專案遇到需要編寫單元測試,版本是junit4.10,來測試 遇到的異常資訊 如業務中出現的錯誤 是否準確,junit提供了兩種不同的測試方法 1.expected exception,主要是使用test註解中的expected,侷限性比較明顯 1.只能判斷所丟擲的異常的型別是否準確 2.測試 如果有...

使用JUnit進行測試

junit 被用來測試 並且它是由能夠測試不同條件的斷言方法 assertion method 組成,如下所示 assertequals a,b 測試a是否等於b a和b是原始型別數值 primitive value 或者必須為實現比較而具有equal方法 assertfalse a 測試a是否為f...