junit5_在JUnit中测试预期的异常

本文介绍了如何在JUnit5中验证代码是否按预期抛出异常。主要讨论了三种方法:@Test注解的expected参数、ExpectedException规则以及try/catch断言/失败。每种方法都有其优缺点,作者倾向于使用ExpectedException,因为它能精确地定位异常发生位置并检查异常消息。
摘要由CSDN通过智能技术生成
junit5

junit5

单元测试用于验证一段代码是否按照开发人员的预期运行。 有时,这意味着检查代码是否也会引发预期的异常。 JUnit是Java单元测试的标准,并提供了几种验证抛出异常的机制。 本文探讨了这些选项及其相对优点。以下面的简单代码段为例。 除了编写测试以确保canVote()方法返回true或false之外,您还应该编写测试以验证是否在期望时抛出IllegalArgumentException

public class Student {
        public boolean canVote(int age) {
            if (i<=0) throw new IllegalArgumentException("age should be +ve");
            if (i<18) return false;
            else return true;
        }
    }

(番石榴前提条件可能更适合于这些参数检查,但该示例仍然有效)。

有3种常见的方法可以检查是否引发了异常,每种方法都有其自身的优缺点。

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您要问的是关于Java计算器的Junit测试。那么我就来为您解答。 首先,JUnitJava最常用的单元测试框架之一。它可以帮助我们编写和运行测试用例,验证代码是否按照预期工作。在Java计算器的情况下,我们可以使用JUnit测试计算器的各种计算方法是否正确。 以下是Java计算器的一个示例: ```java public class Calculator { public int add(int a, int b) { return a + b; } public int subtract(int a, int b) { return a - b; } public int multiply(int a, int b) { return a * b; } public int divide(int a, int b) { if (b == 0) { throw new IllegalArgumentException("Cannot divide by zero!"); } return a / b; } } ``` 我们可以使用JUnit测试这个计算器类的各个方法。例如,我们可以编写以下测试用例: ```java import org.junit.Test; import static org.junit.Assert.*; public class CalculatorTest { private final Calculator calculator = new Calculator(); @Test public void testAdd() { assertEquals(4, calculator.add(2, 2)); assertEquals(0, calculator.add(-1, 1)); } @Test public void testSubtract() { assertEquals(0, calculator.subtract(2, 2)); assertEquals(-2, calculator.subtract(-1, 1)); } @Test public void testMultiply() { assertEquals(4, calculator.multiply(2, 2)); assertEquals(-1, calculator.multiply(-1, 1)); } @Test public void testDivide() { assertEquals(2, calculator.divide(4, 2)); assertEquals(-1, calculator.divide(-1, 1)); try { calculator.divide(4, 0); fail("Expected an IllegalArgumentException to be thrown"); } catch (IllegalArgumentException e) { assertEquals("Cannot divide by zero!", e.getMessage()); } } } ``` 在这个测试用例,我们分别测试了加法、减法、乘法和除法四个方法。我们使用assertEquals()方法来验证方法的返回值是否符合预期。此外,在测试除法时,我们还使用了try-catch块来捕获IllegalArgumentException异常。 总之,JUnitJava非常实用的单元测试框架,可以帮助我们编写高效的测试用例,确保代码的质量和正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值