如何正确验证方法在JUnit中抛出特定异常?
大家好!我刚开始学习Java,正在为我的项目编写单元测试。我有一个方法,当传入无效数据时应该抛出IllegalArgumentException。我想编写一个测试来验证异常确实被抛出,但一直没搞明白如何正确实现。
以下是我的方法示例:
```java
public class Calculator {
public int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("除数不能为零");
}
return a / b;
}
}
```
我尝试这样写测试:
```java
@Test
public void testDivideByZero() {
Calculator calc = new Calculator();
calc.divide(10, 0); // 这里直接抛出异常
}
```
但测试失败并报错,而不是通过。我了解到可以使用`@Test(expected = ...)`,但不确定这是否是最佳方式。我还看到测试中使用try-catch块,但这看起来太冗长了。