如何在JUnit中测试方法是否抛出特定异常?
大家好!我刚开始学习Java,并使用JUnit 4编写单元测试。我有一个方法,在输入数据不正确时应抛出IllegalArgumentException。例如,这个方法:
```java
public int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("除数不能为零");
}
return a / b;
}
```
我想编写一个测试,验证当传入b = 0时确实抛出此异常。我尝试这样做:
```java
@Test
public void testDivideByZero() {
Calculator calc = new Calculator();
calc.divide(10, 0); // 期望异常,但测试因错误而失败
}
```
但测试只是因异常而失败,JUnit将其视为测试错误。我听说在`@Test`注解中有个`expected`参数,还有一些规则。请告诉我如何正确编写这样的测试?重要的是,当抛出异常时测试通过(绿色),如果没有异常则测试失败。