繁体   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