assertThatThrownBy 断言没有异常怎么写
时间: 2024-09-20 15:11:40 浏览: 42
C语言异常与断言接口的实现
`assertThatThrownBy` 是JUnit 5中用于断言预期不会抛出任何异常的方法。如果你想要验证某个代码块应该正常运行而不会抛出异常,你可以这样做:
```java
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.exceptions.verification.Never;
@Test
public class NoExceptionTest {
@MethodSource("noExceptionProvider")
public void shouldNotThrowAnyException(Callable<Void> callable) {
// 预期不抛出异常
try {
callable.call();
} catch (Exception e) {
throw new AssertionError("Callable should not have thrown an exception", e);
}
// 使用 assertThatThrownBy 进行确认
assertThrows(Never.class, () -> callable.call());
}
static Stream<Callable<Void>> noExceptionProvider() {
return Stream.of(() -> { /* 无异常的代码片段 */ });
}
}
```
在这个例子中,`shouldNotThrowAnyException` 方法中的 `callable.call()` 将执行预期不会抛出异常的代码。如果真的发生了异常,会捕获并引发一个新的 `AssertionError`。然后,通过 `assertThrows` 和 `Never.class`,我们进一步确认确实没有异常被抛出。
阅读全文