java - Junit 预期异常 : expect an exact Exception object

标签 java unit-testing junit

所以我一直在使用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/

相关文章:

java - 如何将简单按钮锚定到 snackbar

Java图形用户界面

java - 如何在每个@Test 中为@BeforeEach 方法提供参数

java - 为什么不删除 JUnit TemporaryFolder?

junit - 全局设置 JUnit 运行器而不是 @RunWith

java - LongAdder[] + System.arraycopy() =?

指向由 JAVA_HOME 定义的 JRE 的 Java AppBundler 应用程序

unit-testing - 您是否应该显示单元测试在运行时发生的情况?

c# - 在单元测试中进行多次调用而不使用 for 循环

unit-testing - 如何测试命令行参数处理