19 JUnit单元测试
19.1 测试分类
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。
19.2 JUnit单元测试介绍
JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个测试框架(regression testing framework),供Java开发人员编写单元测试之用。
JUnit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
要使用JUnit,必须在项目的编译路径中引入JUnit的库
,即相关的.class文件组成的jar包。jar就是一个压缩包,压缩包都是开发好的第三方(Oracle公司第一方,我们自己第二方,其他都是第三方)工具类,都是以class文件形式存在的。
19.3 引入本地JUnit.jar
第1步 在项目中File-Project Structure中操作 添加Libraries库
第2步 选择要在哪些module中应用JUnit库
第3步 检查是否应用成功
注意Scope 选择Compile,否则编译时,无法使用JUnit。
第4步 下次如果有新的模块要使用该libs库,这样操作即可
19.4 编写和运行@Test单元测试方法
JUnit4版本,要求@Test标记的方法必须满足如下要求
- 所在的类必须是public的,非抽象的,包含唯一的无参构造器。
- @Test标记的方法本身必须是public,非抽象的,非静态的,void无返回值,()无参数的。
package com.atguigu.junit;
import org.junit.Test;
public class TestJUnit {
@Test
public void test01(){
System.out.println("TestJUnit.test01");
}
@Test
public void test02(){
System.out.println("TestJUnit.test02");
}
@Test
public void test03(){
System.out.println("TestJUnit.test03");
}
}
19.5 设置执行JUnit用例时支持控制台输入
1. 设置数据
默认情况下,在单元测试方法中使用Scanner时,并不能实现控制台数据的输入。需要做如下设置
在idea64.exe.vmoptions配置文件
中加入下面一行设置,重启idea后生效。
-Deditable.java.test.console=true
2. 配置文件位置
添加完成之后,重启IDEA即可。
3. 如果上述位置设置不成功,需要继续修改如下位置
修改位置1 IDEA安装目录的bin目录(例如 D:\develop_tools\IDEA\IntelliJ IDEA 2022.1.2\bin
)下的idea64.exe.vmoptions文件。
修改位置2 C盘的用户目录C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2022.1
下的idea64.exe.vmoptions`件。
19.6 定义test测试方法模板
选中自定义的模板组,点击”+”(1.Live Template)来定义模板。
使用时打第4步设置的test
即可