TestNG 異常測試

在開始前先大概了解下 Java 中異常的分類有兩種異常:Error 和 Exception

Error:稱為錯誤,由Java虛擬機生成并拋出,包括動態(tài)連接失敗、虛擬機錯誤等,程序?qū)ζ洳蛔鎏幚?

Exception:所有異常類的父類,其子類對應(yīng)了各種各樣可能出現(xiàn)的異常,

Exceptin 中最常見的是RuntimeException ,運行時異常,如被0除,數(shù)組下標(biāo)超范圍等,這類異??梢越挥上到y(tǒng)自動檢測并將它們交給缺省的異常處理程序(用戶可不必對其處理),自定義異常也屬于運行時異常。

但除了RuntimeException的Exception:必須catch ,在JDK里寫了throw的必須的catch一般需要用戶顯式的聲明或捕獲

我們在運行過程中測試方法可能會拋出一個運行時異常,比如下面的例子:

運行時異常

有時候我們需要做異常測試,比如某個接口調(diào)用在一定條件條件下,我們希望得到一個異常的結(jié)果,TestNG 通過 ExpectedExceptions可以驗證測試代碼中的符合預(yù)期異常拋出,在上面代碼的基礎(chǔ)上增加 @Test(expectedExceptions = ArithmeticException.class),從下面圖中可以看出運行結(jié)果是成成功

自定義異常

首先定義一個自定義異常:

public class OrderSaveException extends RuntimeException {
    public OrderSaveException(String message) {
        super(message);
    }
}

在其他方法拋出自定義異常:

public class OrderBo {
    public void save(Order order) throws OrderSaveException {
       // 如果傳入的order對象是null就會拋出自定義異常
        if (order == null) {
            throw new OrderSaveException("Order is empty!");
        }
    }
}

定義Order類:

public class Order {
    private String id;
    private String name;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

在測試中驗證

public class MyTest{
    OrderBo orderBo = new OrderBo();
    Order data = new Order();
    // 因為沒有對Order中的字段賦值所以 data 一定是null,此時運行結(jié)果一定失敗,拋出自定義異常
    @Test()
    public void throwIfOrderIsNull() throws OrderSaveException {
        orderBo.save(null);
    }
}

現(xiàn)在增加異常測試,測試結(jié)果是成功的:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、異常 1.1、異常介紹 異常:不正常。生活中的異常:例:在上課時,突然間停電,造成上課終止。 處理:等待來...
    Villain丶Cc閱讀 1,105評論 0 5
  • 來源:https://www.cnblogs.com/Qian123/p/5715402.html#_label0...
    Alex筆記閱讀 454評論 0 1
  • Java異常簡介 Java異常是Java提供的一種識別及響應(yīng)錯誤的一致性機制。Java異常機制可以使程序中異常處理...
    JourWon閱讀 1,348評論 0 5
  • 什么是異常?Java代碼在運行時期發(fā)生的問題就是異常。在Java中,把異常信息封裝成了一個類。當(dāng)出現(xiàn)了問題時,就會...
    圣賢與無賴閱讀 515評論 0 0
  • 《當(dāng)男人變成女人》 當(dāng)男人變成女人, 從女人變成孩子, 又從孩子變成男人。 這是一個過程, 他意味著喪失。 有人說...
    卦貓閱讀 1,108評論 0 12

友情鏈接更多精彩內(nèi)容