什么是JUnit?
- JUnit是一个开源的Java语言的单元测试框架,专门针对Java设计,使用最广泛。JUnit是事实上的单元测试的标准框架,任何Java开发者都应当学习并使用JUnit编写单元测试。
- 使用JUnit编写单元测试的好处在于,我们可以非常简单地组织测试代码,并随时运行它们,JUnit就会给出成功的测试和失败的测试,还可以生成测试报告,不仅包含测试的成功率,还可以统计测试的代码覆盖率,即被测试的代码本身有多少经过了测试。对于高质量的代码来说,测试覆盖率应该在80%以上。
安装步骤
- 如果没有安装IDEA,需要先配置好相关环境。
- 打开IDEA,先新建一个Java项目,点击 文件File-新建New-项目Project
- 完成项目的创建后,点击 文件File-设置Settings-Plugins 在搜索栏搜索
JUnit
,进行安装。
我的IDEA使用的是2019年版本,默认安装了JUnit。
- 通过Libraries添加Jar包
1)打开 File -> Project Structure ->Modules-> 在Dependencies 下添加jar包。
我使用的IDEA,自带JUnit-4.1.2跟Hamcrest-core-1.3jar包,在存储路径下lib文件夹中。若没有,需要到网上下载这两个jar包,添加到依赖项中。
需注意:从JUnit 4.11开始,**Hamcrest
**已经不再包含在junit.jar中了,需要单独引入。
2)添加jar包后,如图所示
- 新建一个测试目录
创建一个和src同级别的文件夹叫test(逻辑代码放src里,测试代码放test里是个好习惯)。接着在IntelliJ IDEA里还要把这个test文件夹要设置成测试文件的根目录,右键选中Mark Directory As - Test Sources Root。
- 以下是我直接在src路径下新建的被测试类Factorial,以它为例。
//Factorial.java
public class Factorial {
public static long fact(long n) {
long r = 1;
for (long i = 1; i <= n; i++) {
r = r * i;
}
return r;
}
}
- 创建Junit4的测试代码,鼠标右键点击类名 使用 goto-Test即可实现
- 创建测试,根据自身需要来勾选
//测试代码 FactorialTest.java
public class FactorialTest {
@Test
public void fact() {
assertEquals(1, Factorial.fact(1));
assertEquals(2, Factorial.fact(2));
assertEquals(6, Factorial.fact(3));
assertEquals(3628800, Factorial.fact(10));
assertEquals(2432902008176640000L, Factorial.fact(20));
}
}
- 所有工作已经做完,此时点击运行就可以啦!正常来说会测试成功,运行结果如下:
此时一个简单的Junit注解使用就算成功了!
最后附上一些常用的概念:
一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次@BeforeClass
使用此注解的方法在测试类被调用之前执行@AfterClass
使用此注解的方法在测试类被调用结束退出之前执行
一个类中有多少个@Test
注解方法,以下对应注解方法就被调用多少次@Before
在每个@Test
调用之前执行@After
在每个@Test
调用之后执行@Test
使用此注解的方法为一个单元测试用例,一个测试类中可多次声明,每个注解为@Test
只执行一次@Ignore
暂不执行的测试用例,会被JUnit4忽略执行