您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。