在 Go 中編寫單元測試時,通常需要驗證特定程式碼路徑是否觸發 Panic。雖然 Go 提供了一種名為「recover」的機制來處理恐慌,但它不提供直接支援來指定如何在發生恐慌時跳過或執行程式碼。
為了克服這個限制,我們可以利用微妙之處測驗並不能定義成功的概念,而只能定義失敗的概念。利用這一點,我們可以如下建立我們的測試:
在此範例中,如果OtherFunctionThatPanics 不恐慌,則復原函數將傳回nil,並且測試將因呼叫而失敗到t. Errorf。如果發生恐慌,recover 將捕獲它,測試將通過。
或者,我們可以建立一個輔助函數來抽像出恐慌檢查邏輯:
這個方法提供了一種簡潔且可重複使用的方法來處理 Go 中的恐慌測試。
以上是如何在 Go 單元測試中有效測試恐慌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!