在Java中,JUnit测试抛出异常的错误形式通常是使用assertThrows
方法。assertThrows
方法接受两个参数:一个是预期抛出的异常类型,另一个是一个Lambda表达式,该表达式包含可能抛出异常的代码。如果Lambda表达式抛出了预期的异常类型,则测试通过;否则,测试失败。
例如,假设我们要测试一个方法divide(int a, int b)
,该方法返回两个整数的商,但在除数为0时会抛出ArithmeticException
异常。我们可以使用assertThrows
方法来测试这个方法是否正确抛出异常:
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class DivisionTest {
@Test
public void testDivideByZero() {
Assertions.assertThrows(ArithmeticException.class, () -> divide(10, 0));
}
}
在这个例子中,assertThrows
方法接受两个参数:预期抛出的异常类型ArithmeticException.class
和一个Lambda表达式() -> divide(10, 0)
,该表达式调用divide
方法并传入两个参数10和0。由于除数为0,divide
方法会抛出ArithmeticException
异常,因此assertThrows
方法预期的异常类型与实际抛出的异常类型相同,测试通过。
需要注意的是,如果Lambda表达式没有抛出预期的异常类型,assertThrows
方法会抛出AssertionError
异常,因此我们需要确保测试代码能够正确处理这种情况。
领取专属 10元无门槛券
手把手带您无忧上云