Avatar ·

Como verificar no JUnit se um método lança uma exceção específica?

Olá a todos! Comecei a estudar Java recentemente e estou escrevendo testes unitários com JUnit 4. Tenho um método que, para dados de entrada inválidos, deve lançar IllegalArgumentException. Por exemplo, este método: ```java public int divide(int a, int b) { if (b == 0) { throw new IllegalArgumentException("O divisor não pode ser zero"); } return a / b; } ``` Quero escrever um teste que verifique que, ao passar b = 0, a exceção é realmente lançada. Tentei fazer assim: ```java @Test public void testDivideByZero() { Calculator calc = new Calculator(); calc.divide(10, 0); // espero exceção, mas o teste falha com erro } ``` Mas o teste simplesmente falha com a exceção, e o JUnit considera isso um erro no teste. Ouvi dizer que existe um parâmetro `expected` na anotação `@Test` e também algumas regras. Alguém pode me dizer como escrever esse teste corretamente? É importante que o teste passe verde quando a exceção for lançada e falhe se a exceção não ocorrer.