您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中进行单元测试时,我们通常使用JUnit框架。当一个方法抛出异常时,我们可以使用@Test
注解的expected
属性或者ExpectedException
规则来测试这个异常。下面是两种方法的示例:
方法1:使用@Test
注解的expected
属性
假设我们有一个方法divide
,当除数为0时,它会抛出一个ArithmeticException
异常:
public class Calculator {
public int divide(int a, int b) {
if (b == 0) {
throw new ArithmeticException("Division by zero");
}
return a / b;
}
}
为了测试这个异常,我们可以使用@Test
注解的expected
属性:
import org.junit.Test;
import static org.junit.Assert.*;
public class CalculatorTest {
@Test(expected = ArithmeticException.class)
public void testDivideByZero() {
Calculator calculator = new Calculator();
calculator.divide(1, 0);
}
}
方法2:使用ExpectedException
规则
首先,需要在测试类中导入ExpectedException
规则:
import org.junit.Rule;
import org.junit.rules.ExpectedException;
然后,在测试类中声明一个ExpectedException
实例:
public class CalculatorTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
}
接下来,在测试方法中使用expect
、expectMessage
等方法来定义预期的异常和异常消息:
@Test
public void testDivideByZero() {
Calculator calculator = new Calculator();
thrown.expect(ArithmeticException.class);
thrown.expectMessage("Division by zero");
calculator.divide(1, 0);
}
这两种方法都可以用来测试抛出异常的情况。ExpectedException
规则提供了更多的灵活性,例如,你可以检查异常的多个属性,或者在同一个测试方法中检查多个异常。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。