什么是JUnit 5

什么是JUnit 5

在软件开发中,单元测试是一个隔离和测试应用程序专用部分的过程。 单位是这些专用部分的正式术语。 在您的 Java 应用程序中,一个单元就是一个方法。

有许多可供 Java 开发人员使用的单元测试框架。 顶级框架之一是 JUnit 5。

推荐:WP Review Slider Pro插件

为什么单元测试很重要?

如果您曾经编写过调试语句来打印和检查变量的值,那么恭喜; 你已经创建了一个单元测试。 这个一次性代码部分是必要的,因为您没有收到所需的输出。

但是,如果您收到所需的输出并且代码仍然在某处包含错误怎么办? 您可能会部署该应用程序,并且此错误可能会导致以后出现安全漏洞。 对于存储用户数据的应用程序,一旦出现安全漏洞,风险就很高。

单元测试针对应用程序的每个部分——无论它当前是否导致错误。 因此,单元测试在良好的软件安全性中起着重要作用。

什么是 JUnit 5?

JUnit 5 不仅仅是另一个单元测试框架。 它有几个子项目,即 JUnit Platform、JUnit Jupiter 和 JUnit Vintage。 这三个组件中的每一个都有独特的模块,它们协同工作以改进 Java 程序员的测试。

JUnit 5 平台可用于顶级 Java 集成开发平台 (IDE) 的最新版本。 支持 JUnit 5 的 Java IDE 是:

  • IntelliJ IDEA
  • NetBeans
  • 视觉工作室代码

使用 JUnit 5 创建单元测试

此示例程序使用 JUnit 5 在一个简单的计算器应用程序上创建多个单元测试。

计算器类

package app;
 
public class Calculator {
    public static int add(int num1, int num2) {
        return num1 + num2;
    }
      
    public static int subtract(int num1, int num2) {
        return num1 - num2;
    }
      
    public static int multiply(int num1, int num2) {
        return num1 * num2;
    }
      
    public static int divide(int num1, int num2) {
        return num1 / num2;
    }
}

上面的 Java 类执行四种静态操作:加法、减法、乘法和除法。 每个方法接受两个整数参数并返回一个整数值。

JUnit 5 测试类

package test;
 
import static org.junit.Assert.*;
import app.Calculator;
import org.junit.Test;
 
public class CalculatorTest {
    @Test
    public void testAdd() {
        assertEquals(7, Calculator.add(3, 4));
    }
      
    @Test
    public void testSubtract() {
        assertEquals(6, Calculator.subtract(9, 3));
    }
 
    @Test
    public void testMultiply() {
        assertEquals(10, Calculator.multiply(5, 2));
    }
 
    @Test
    public void testDivide() {
        assertEquals(2, Calculator.divide(4, 2));
    }
}

计算器测试 引入两个重要概念: @测试 注释和 断言等于() 方法。 这 @Test 注解表明它正下方的方法是一个测试方法。 在上面的测试类中,有四种测试方法,每种方法用于计算器操作。

所有的测试方法都使用 assertEquals() 方法。 此方法采用两个强制参数和一个可选的第三个参数。 给 assertEquals() 的第一个参数 上面的方法是预期的结果,第二个参数是您要评估的方法(或单位)。

CalculatorTest 类没有 main 方法,但 JUnit @Test 注释使每个测试方法都可执行。 在eclipse中执行CalculatorTest类会产生如下界面:

什么是JUnit 5
什么是JUnit 5

如您所见,每次测试都是成功的。 有四个测试,它们都运行没有错误或失败。

学习单元测试可以扩展你的职业机会

作为开发人员,知道如何测试软件是一项有利的技能。 它肯定会改善您的工作流程,并有望使您的代码更易于他人使用。 但是,有一个软件开发分支只专注于测试。 这些工程师被称为软件测试员。

推荐:Woocommerce自定义产品插件Woocommerce Custom Product Addons


发表评论