所以我一直在使用ExpectedException期望抛出异常的类型
、消息
、原因
,甚至匹配器
。
但是为什么没有一个实用方法来完全期望异常对象呢?当然,我最好测试对象相等性(假设我知道我在做什么)而不是测试它的所有单独属性?毕竟,如果方法 A
仅抛出其委托(delegate)者方法 B
抛出的任何异常(方法 A
调用方法 B
) code>),对我来说,模拟 method B
来抛出异常会更容易,比如说 Exception A
并检查我的 中抛出的确切对象方法A
的测试方法?
那么为什么没有提供这样的实用方法呢?
当然,我可以在测试中包装我的 method A
调用并捕获异常来测试对象,但 type
也可以这样说,消息
和原因
也是如此 - 我想目标是使测试代码看起来比没有 try/catch block 更具可读性。
最佳答案
只需使用 ExpectedException#expect(Matcher)
并提供一个 Matcher
来检查引用或对象相等性。您可以使用org.hamcrest.core.Is#is(Object)
,传入它将抛出的确切 Exception
实例(如果这是您可以控制的)。
关于java - Junit 预期异常 : expect an exact Exception object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706840/