[英]Is there a way to test that a Java method does not throw a specific type of exception?
我只是在此處查看JUnit 文檔中的 assertDoesNotThrow() 。 我知道您可以使用 assertThrows() 指定異常的類型,但從文檔中可以看出,您不能使用 assertDoesNotThrow() 來執行此操作。 有什么特別的原因嗎? 如果你想證明,例如,一個方法不會拋出 ParseException,你會怎么做 go
Java 測試的默認值是它斷言 function 不會拋出。 你不需要為此做任何額外的工作; 你只需要做額外的工作就可以讓它拋出。
要測試一個方法是否不會拋出ParseException
,請運行它。 就這樣。
試圖證明一個方法不會拋出異常就像說紫色獨角獸不存在。 人們必須檢查宇宙中的每一個點來證明這一點。 另一方面,如果您檢查紫色獨角獸可能生活的地點並且沒有看到它們,您可以近似並判斷它們在這種情況下不存在。
因此,在測試方法以查看它們是否按預期運行時,您可以測試邊緣情況、邊界條件。 對於其中一些情況,您希望您的方法拋出異常,因此assertThrows()
。
除此之外,試圖證明一個方法不會在 Java 中引發異常是不可能/毫無意義的。 因為你不能證明一個方法是純粹的,即每次你運行它時它的行為都是一樣的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.