JUnit 之初体验
1.定义
JUnit 是一个流行的 Java 单元测试框架,用于编写和执行测试。它提供了一组注解
和断言
,使得单元测试的编写变得简单且直观。
程序开发过程中,不变的永远是变化!
因此,单元测试极为重要!通过使用我们所编写的 JUnit 测试用例来验证代码的正确性,并且还可以确保代码在之后的修改或重构后仍然能够正常工作。
2.引入
在 Java 项目中引入 JUnit 主要有以下几种常用的方式
1)使用 Maven 工具
在 Maven 项目的 pom.xml
文件中添加 JUnit 依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version> <!-- 自己选择需要的版本 -->
<scope>test</scope>
</dependency>
</dependencies>
2)使用 Gradle 工具
在 Gradle 项目的 build.gradle
文件中添加 JUnit 依赖
testImplementation 'junit:junit:4.13.2' // 自己选择需要的版本
3)使用 Jar 包
需要手动下载 JUnit Jar 包(可以从 JUnit 官方网站下载)并添加到项目的类路径下
JUnit 官网下载地址:
- JUnit4:https://junit.org/junit4/
- JUnit5:https://junit.org/junit5/
2.样例
编写 测试用例 的基本流程 大概是:创建一个 测试类 =》编写N组 测试方法 =》编写N组 断言
接下来就让我们逐一认识一下吧!
0)前提
想要测试嘛!肯定要有需要测试的代码呀 (此处选择使用了 Maven 导入 JUnit)
本 Demo
类中存在了两个方法,分别是用于加法运算的 add
以及 用于减法运算的 sub
class Demo {
public int add(int a, int b) {
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
}
1)测试类
在 JUnit 中,测试用例通常以一个包含测试方法的测试类为单位
测试类是一个普通的 Java 类,其中包含了一个或多个使用 @Test
注解标记的测试方法
2)测试方法
测试方法用 @Test
注解进行标记,这告诉 JUnit 这是一个测试方法。测试方法包含用于验证代码行为的断言
3)测试断言
在 JUnit 中提供了一组断言方法,用于验证预期结果是否符合实际结果。例如,assertEquals(expected, actual)
用于比较预期值和实际值是否相等
4)实施
点击代码左侧的 绿色运行按钮
,然后点击 Run xxxx
即可。也可以在代码区内点击 鼠标右键
然后 Run xxxx
说明,这种点击就是运行当前类的全部测试方法,也可以单独运行指定的测试方法
示例代码:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
class MyFirstJUnitJupiterTests {
private final Demo demo = new Demo();
@Test
void add() {
assertEquals(2, demo.add(1, 1));
}
@Test
void sub() {
assertEquals(4, demo.sub(5, 1));
}
}
这里使用的 assertEquals(expected, actual) 是验证预期值和实际值是否相等
运行结果:
1)正常结果
可以看到 两个方法都是 绿色?,说明其正确。
2)异常结果
修改一下 sub
方法的期待结果,将其结果故意修改为错误值 3
@Test
void sub() {
assertEquals(3, demo.sub(5, 1));
}
可以看到 第一个方法 add 是绿色?,而第二个方法 sub 则是 黄色 X 说明其错误
总结
这样我们就使用 JUnit
这个流行的 Java 单元测试框架编写了第一个单元测试用例啦!JUnit
提供的方法还有很多,此处只是简单的使用了 @Test
和 assertEquals
,它还拥非常多的功能待我们去研究及运用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!