简述怎么利用 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)
注解只能用于测试单个异常类型。如果你想测试一个方法是否可能抛出多种异常类型,你需要为每个可能的异常类型编写一个单独的测试方法。