gpt4 book ai didi

java - 在 Java 中,如何使用 JUnit 验证抛出的异常?

转载 作者:IT老高 更新时间:2023-10-28 21:09:33 24 4
gpt4 key购买 nike

在为 Java API 编写单元测试时,您可能希望对异常执行更详细的验证。 IE。比 JUnit 提供的 @test 注释提供的更多。

例如,考虑一个应该从其他接口(interface)捕获异常的类,包装该异常并抛出被包装的异常。您可能需要验证:

  1. 引发包装异常的确切方法调用。
  2. 包装器异常的原因是原始异常。
  3. 包装异常的消息。

这里的重点是,您希望在单元测试中对异常进行额外验证(而不是关于您是否应该验证异常消息等内容的争论)。

对此有什么好的方法?

最佳答案

在 JUnit 4 中,可以使用 ExpectedException 轻松完成。规则。

这是来自 javadocs 的示例:

// These tests all pass.
public static class HasExpectedException {
@Rule
public ExpectedException thrown = ExpectedException.none();

@Test
public void throwsNothing() {
// no exception expected, none thrown: passes.
}

@Test
public void throwsNullPointerException() {
thrown.expect(NullPointerException.class);
throw new NullPointerException();
}

@Test
public void throwsNullPointerExceptionWithMessage() {
thrown.expect(NullPointerException.class);
thrown.expectMessage("happened?");
thrown.expectMessage(startsWith("What"));
throw new NullPointerException("What happened?");
}
}

关于java - 在 Java 中,如何使用 JUnit 验证抛出的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/785618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com