Avatar ·

如何在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`参数,还有一些规则。请告诉我如何正确编写这样的测试?重要的是,当抛出异常时测试通过(绿色),如果没有异常则测试失败。