JUnit测试单元
JUnit测试单元可以实现一个类中允许多个’main’方法的效果,具体是独立自主地运行各个待测试的方法。
注解(annotation)
注解是Java中的引用数据类型,是一个特殊的类,由第三方工具包提供,已经存在于Java的本地文件 **lib(依赖)**中,
使用注解时,需要导入依赖。@Test
是 JUnit 的一个基本注解,创建一个注解对象,Test 是注解名,表示接下来创建的是一个测试方法,类似于 main 方法。
使用JUnit测试单元
1.创建一个类,命名Demo
2.在类中写注解@Test
,然后alt + enter 导入依赖,选择 JUnit4(常用)
或者找到IDEA下lib的 junit4 手动导入,在文件夹 Project Structure
中 Dependencies
中 选择 +
,
点击第一个,选择路径。
3.然后会出现一个报错,这时需要在下一行写测试方法,这样就不会报错了,方法的固定格式:
public void 方法名() { //方法体 }
例如:
package junit;
import org.junit.Test;
public class Demo {
@Test
public void test(){
System.out.println("java");
}
@Test
public void test2(){
System.out.println("c++");
}
}
此时点击运行后,可以选择运行整个类,也可以运行某一个测试方法。
注意:
1.写了测试方法尽量再避免写 main 方法
2.测试方法的格式是固定的
3.测试方法也是可以互相调用的
例如:
@Test
public void test(){
System.out.println("java");
test3();
}
@Test
public void test3(){
System.out.println("666");
}
那么为什么不建议将类名命名成 Test 呢?
因为注解和类是同等级的引用数据类型,当使用 Test 命名类时,@Test
就会面临选择导入依赖中的Test注解和自身 Test 类的选择,那么Java会根据就近原则优先选择用户自定义的 Test 类。此时 Test 类既不是注解,也无法完成注解的功能,就会报错。
解决方法:除了不使用 Test 命名,在写注解时可以使用 ‘全限定类名’。
当使用类(注解)时,使用“类名”的形式,称为**“简单类名”;使用“包名 + 类名”的形式,称为“全限定类名”**。
“全限定类名”的作用是唯一确定一个类,在同一个包中不允许存在同名的类,但是在不同包中就会存在,所以使用“全限定类名”可以指明类的使用。
例如:
import org.junit.Test;
public class Test {
@org.junit.Test
public void test(){
System.out.println("java");
}
注解和类?
解读注解的CSDN博客: