目录
单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。
今天要介绍的是一款JAVA单元测试框架:JUnit
JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用JUnit编写单元测试。此外,几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试,JUnit目前最新版本是5。
那我们为什么要使用JUnit 呢?它有什么优点?
今天这篇博客分别要介绍 Junit 4 和 Junit 5。
要是用JUnit 我们就要搭建好相关环境。我使用的是IDEA,所以要下载一个插件。
如果你是Maven 项目请导入下面的依赖。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
如果你不是Maven项目,就手动导入jar包,下载地址放在下面了。\
链接:百度网盘 请输入提取码
提取码:wxkj
还是一样,如果你是Maven项目,请导入下面的依赖。
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
如果你不是Maven项目,就手动导入jar包,下载地址放在下面了。
链接:百度网盘 请输入提取码
提取码:kbk8
环境搭建完毕后,我们就进入JUnit 的使用吧。
我分为JUnit 4 和 JUnit 5 两部分给大家演示。
首先我们先认识一下JUnit 4 的一些常用注解。
注解 | 说明 |
---|---|
@Test | 测试方法 |
@Before | 用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。 |
@After | 用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。 |
@BeforeClass | 用来修饰静态方法,该方法会在所有测试方法之前只执行一次。 |
@AfterClass | 用来修饰静态方法,该方法会在所有测试方法之后只执行一次。 |
接下来就是代码演示了。
首先我们创建一个方法类,里面我们模拟一个简单的登陆方法。
然后我们把鼠标放到类名上,就是上图箭头所指的位置,然后 键盘 Alt + Enter 。
选择Create Test。
点击OK 就会生成JUnit 4的测试类啦。
代码演示:
大家可以看到我在图中特意标红的地方,这个叫断言,它有什么用呢?
它的作用可大了,假如我们的要执行的测试方法有很多,自己又懒得等,这个时候就可以使用断言来帮我做方法的结果是否 是我们想要的。
例如:
图中,我将name 输入错误的,然后执行,控制台就直接抛出异常,还清楚的告知是第几行。
接下来到了Junit 5,JUnit5 和 JUni4 有点不同,但是大同小异。
我们先来认识JUnit5 中常用的注解。
注解 | 说明 |
---|---|
@Test | 测试方法 |
@BeforeEach | 用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。 |
@AfterEach | 用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。 |
@BeforeAll | 用来修饰静态方法,该方法会在所有测试方法之前只执行一次。 |
@AfterAll | 用来修饰静态方法,该方法会在所有测试方法之后只执行一次。 |
就是注解稍微有了一些小变化。具体大家可以看官网介绍,传送门:https://junit.org/junit5/docs/current/user-guide/
接下来我们看代码演示:
注意:
JUnit 5 的 包是 :org.junit.jupiter.api ,而Junit 4 的包是 :org.junit.Test