拋出 Exception 的方法
在開發的過程中,難免會遇到一些方法,不會有直接的回傳結果,也許只會在過程中會產生 Exception,正常執行以後,並不會有任何反應,這時候透過傳統的 Assert 沒有辦法測出想要測試的內容。
1 | public void checkEmptyUserName(String username){ |
Junit Rule
Junit Rule 從 Junit 4.7 以後開始提供,主要提供了這種非典型需求的解決辦法, Rule 主要有幾種功能:
- 對方法的測試時間設置 Timeout
- 測試方法是否拋出預期的異常
ExpectedException
- 避免方法預到錯誤就停下來,可以透過
ErrorCollector
蒐集起來 - …
需要測試 Exception 是否如預期的產生,我們當然就是透過 ExpectedException
來處理:
1 | public static class verfiyExceptionTest{ |
透過 ExpectedException 的協助,不單可以測試出是否測出預期的 Exception 同時也可以確認 Exception message 是否如預期,在測試的粒度上,又往前了一步。