junit怎么断言异常
时间: 2024-03-04 10:24:09 浏览: 18
在 JUnit 中,可以使用 `@Test` 注解来标识一个测试方法,如果方法执行过程中抛出了异常,则测试方法会被认为是失败的。如果你希望测试方法抛出的异常与预期不同,可以使用 `assertThrows` 方法来断言异常。
`assertThrows` 方法的语法如下:
```java
assertThrows(expectedExceptionType, executable);
```
其中,`expectedExceptionType` 是期望捕获到的异常类型,`executable` 是一个 `Executable` 对象,它包含了要执行的测试方法代码。如果测试方法执行过程中抛出了符合 `expectedExceptionType` 类型的异常,则 `assertThrows` 方法会成功,否则会抛出一个 `AssertionError` 异常。
例如,如果你想测试一个方法是否会抛出 `IllegalArgumentException` 异常,可以这样写:
```java
@Test
public void testException() {
assertThrows(IllegalArgumentException.class, () -> {
// 调用会抛出 IllegalArgumentException 异常的方法
someMethodThatThrowsIllegalArgumentException();
});
}
```
注意,`assertThrows` 方法需要使用 Java 8 中的 Lambda 表达式来传递一个可执行的代码块。如果你的项目中使用的是 Java 7 或更早的版本,你需要使用匿名内部类来代替 Lambda 表达式。