用mockito写一个方法抛出exception的unit test例子
时间: 2023-12-10 15:03:17 浏览: 29
假设我们有一个名为`Calculator`的类,其中有一个名为`divide`的方法,该方法接受两个整数作为参数,并将它们相除。如果第二个参数为0,则该方法将抛出`ArithmeticException`。我们可以使用Mockito框架编写一个测试用例来测试此方法是否会抛出正确的异常。
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class CalculatorTest {
@Mock
Calculator calculator;
@Test(expected = ArithmeticException.class)
public void testDivideByZero() {
when(calculator.divide(10, 0)).thenThrow(new ArithmeticException("Division by zero"));
calculator.divide(10, 0);
}
}
```
在上面的示例中,我们使用`@Mock`注释创建了一个名为`calculator`的模拟对象。我们还使用`@RunWith(MockitoJUnitRunner.class)`注释告诉JUnit使用Mockito运行测试用例。
在`testDivideByZero`测试方法中,我们使用`when`方法来告诉模拟对象在调用`divide`方法时抛出`ArithmeticException`异常。然后我们调用`divide`方法并期望它抛出`ArithmeticException`异常。如果`divide`方法没有抛出异常,则测试将失败。
这是一个简单的例子,演示了如何使用Mockito框架编写单元测试来测试方法是否会抛出正确的异常。