Junit ExpectedException:期望一个确切的Exception对象

时间:2014-09-07 03:32:48

标签: java unit-testing junit

所以我一直在使用ExpectedException来预测抛出异常的typemessagecause甚至matcher

但为什么没有一种实用工具方法可以简单地期望一个异常对象呢?当然,我最好测试对象平等(假设我知道我在做什么),而不是测试它的所有个别属性?毕竟,如果method A只是抛出了其委托人method B抛出的任何异常(method A调用method B),那么我会更容易模仿{{1}抛出异常,说method B并检查我的Exception A测试方法中抛出的确切对象?

那为什么不提供这样的实用方法呢?

当然,我可以在我的测试中包含method A调用并捕获异常来测试对象,但method A s,type和{{{ 1}}也是 - 我想目标是让测试代码看起来更像是没有try / catch块。

1 个答案:

答案 0 :(得分:4)

只需使用ExpectedException#expect(Matcher)并提供检查引用或对象相等性的Matcher。您可以使用org.hamcrest.core.Is#is(Object),传入它将抛出的确切Exception实例(如果您可以控制的话)。