在mockito和JUnit单元测试中,可以使用doThrow
方法来捕获或模拟意外的异常。以下是使用mockito和JUnit的示例代码:
Calculator
,它有一个divide
方法,用于执行除法操作。public class Calculator {
public int divide(int a, int b) {
return a / b;
}
}
CalculatorTest
,并在其中使用mockito进行测试。import org.junit.Test;
import org.mockito.Mockito;
import static org.junit.Assert.assertEquals;
public class CalculatorTest {
@Test(expected = ArithmeticException.class)
public void testDivideByZero() {
// 创建Calculator对象的mock实例
Calculator calculator = Mockito.mock(Calculator.class);
// 当调用divide方法时,抛出ArithmeticException异常
Mockito.doThrow(new ArithmeticException("除数不能为零")).when(calculator).divide(Mockito.anyInt(), Mockito.eq(0));
// 调用divide方法,会抛出ArithmeticException异常
calculator.divide(10, 0);
}
@Test
public void testDivide() {
Calculator calculator = new Calculator();
// 正常调用divide方法,不会抛出异常
int result = calculator.divide(10, 2);
// 验证结果是否符合预期
assertEquals(5, result);
}
}
在上面的示例中,testDivideByZero
方法测试了当除数为零时是否会抛出ArithmeticException
异常。通过使用doThrow
方法,我们告诉mockito在调用divide
方法时抛出该异常。然后,我们调用divide
方法,并使用expected
参数标记该方法预期会抛出ArithmeticException
异常。最后,我们断言该测试方法会抛出异常。
另外,在testDivide
方法中,我们正常调用了divide
方法,并验证了其返回结果是否符合预期。
这样,我们就可以在mockito和JUnit单元测试中捕获或模拟意外的异常了。
腾讯云相关产品和产品介绍链接地址:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云