跳到主要内容

简述怎么利用 JUnit 来测试一个方法的异常?

参考答案:

JUnit 是一个用于 Java 编程语言的单元测试框架。在 JUnit 中,你可以使用 @Test(expected = Exception.class) 注解来测试一个方法是否抛出了预期的异常。下面是一个简单的示例:

假设你有一个方法 divide(),它接收两个整数作为参数,并返回它们的商。如果第二个参数为0,该方法应抛出 ArithmeticException 异常。

public class Calculator {
    public double divide(int dividend, int divisor) {
        if (divisor == 0) {
            throw new ArithmeticException("Divisor cannot be zero");
        }
        return dividend / divisor;
    }
}

为了测试这个方法,你可以使用 JUnit 的 @Test(expected = Exception.class) 注解来检查当除数为0时,该方法是否抛出了 ArithmeticException 异常。

import org.junit.Test;
import static org.junit.Assert.*;

public class CalculatorTest {
    @Test(expected = ArithmeticException.class)
    public void testDivideByZero() {
        Calculator calculator = new Calculator();
        calculator.divide(10, 0); // 这行代码应该抛出 ArithmeticException 异常
    }
}

在这个测试方法中,我们创建了一个 Calculator 对象,并尝试用除数为0的参数调用 divide() 方法。由于该方法在除数为0时会抛出 ArithmeticException 异常,因此这个测试方法应该通过。如果 divide() 方法没有抛出异常,那么这个测试方法就会失败。

注意,@Test(expected = Exception.class) 注解只能用于测试单个异常类型。如果你想测试一个方法是否可能抛出多种异常类型,你需要为每个可能的异常类型编写一个单独的测试方法。