什么是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;
publicclassCalculator{
publicstaticintadd(int num1, int num2){
return num1 + num2;
}
publicstaticintsubtract(int num1, int num2){
return num1 - num2;
}
publicstaticintmultiply(int num1, int num2){
return num1 * num2;
}
publicstaticintdivide(int num1, int num2){
return num1 / num2;
}
}
上面的 Java 类执行四种静态操作:加法、减法、乘法和除法。 每个方法接受两个整数参数并返回一个整数值。
JUnit 5 测试类
package test;
importstatic org.junit.Assert.*;
import app.Calculator;
importorg.junit.Test;
publicclassCalculatorTest{
@Test
publicvoidtestAdd(){
assertEquals(7, Calculator.add(3, 4));
}
@Test
publicvoidtestSubtract(){
assertEquals(6, Calculator.subtract(9, 3));
}
@Test
publicvoidtestMultiply(){
assertEquals(10, Calculator.multiply(5, 2));
}
@Test
publicvoidtestDivide(){
assertEquals(2, Calculator.divide(4, 2));
}
}
计算器测试 引入两个重要概念: @测试 注释和 断言等于() 方法。 这 @Test 注解表明它正下方的方法是一个测试方法。 在上面的测试类中,有四种测试方法,每种方法用于计算器操作。
所有的测试方法都使用 assertEquals() 方法。 此方法采用两个强制参数和一个可选的第三个参数。 给 assertEquals() 的第一个参数 上面的方法是预期的结果,第二个参数是您要评估的方法(或单位)。
CalculatorTest 类没有 main 方法,但 JUnit @Test 注释使每个测试方法都可执行。 在eclipse中执行CalculatorTest类会产生如下界面:
如您所见,每次测试都是成功的。 有四个测试,它们都运行没有错误或失败。
学习单元测试可以扩展你的职业机会
作为开发人员,知道如何测试软件是一项有利的技能。 它肯定会改善您的工作流程,并有望使您的代码更易于他人使用。 但是,有一个软件开发分支只专注于测试。 这些工程师被称为软件测试员。