1
我讀過一本書說:「使用assert來測試內部代碼是有意義的。例如:是JDK斷言需要使用的嗎?
private String welcome(String name) {
assert name!=null && !name.isEmpty() : "name must be specified";
return "Hello, " + name;
}
」 那麼本書介紹了團結test.I奇蹟是有必要使用斷言甚至有統一的測試? 謝謝。
我很困惑這個邏輯。我的意思是,如果我知道(或通過單元測試發現)一些不支持的參數將通過,爲什麼不做一些像拋出IllegalArgumentException一樣的預防? – yuxh
你當然可以拋出一個'IllegalArgumentException',但這不會簡單地阻止*某人傳入一個不受支持的參數。這引發了一個例外,它使調用代碼有機會處理這種情況。單元測試可以檢查是否傳入了不支持的參數,然後該方法正確地引發了您期望的異常,而不僅僅是摔倒。 – Alex
我使用異常來爲調用代碼提供處理場景的更改。我使用單元測試來防止異常發生。那麼JDK聲明使用了什麼? – yuxh