Junit 断言 不会抛出异常,怎么写
时间: 2024-01-24 18:01:45 浏览: 336
在 JUnit 中,可以使用 `assertDoesNotThrow()` 方法来断言代码块不会抛出异常。该方法的语法如下:
```java
assertDoesNotThrow(Executable executable)
```
其中,`Executable` 是一个函数式接口,表示需要执行的代码块。如果该代码块没有抛出任何异常,则该断言将通过。
举个例子,假设我们有以下代码块:
```java
public void doSomething() throws Exception {
// some code that may throw an exception
}
```
我们可以使用如下断言来测试该代码块不会抛出异常:
```java
assertDoesNotThrow(() -> {
doSomething();
});
```
如果代码块 `doSomething()` 没有抛出任何异常,则该断言将通过。否则,该断言将失败。
相关问题
junit报assertexception,JUnit 5:抛出如何断言异常?
在 JUnit 5 中,可以使用 `assertThrows` 方法来测试方法是否抛出了异常。该方法接受三个参数:期望抛出的异常类型、被测试的方法以及方法的参数(可选)。
例如,如果要测试一个方法是否抛出 `ArithmeticException` 异常,可以使用以下代码:
```java
@Test
void testDivideByZero() {
assertThrows(ArithmeticException.class, () -> {
int i = 1 / 0;
});
}
```
在上面的代码中,我们使用 `assertThrows` 方法来测试是否抛出了 `ArithmeticException` 异常。如果方法没有抛出异常,该测试将失败。
junit怎么断言异常
在 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 表达式。
阅读全文