簡體   English   中英

有沒有辦法測試 Java 方法不會拋出特定類型的異常?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM