一、概述
- JUnit是一个Java语言的单元测试框架。
- 多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
- Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
- JUnit可广泛用于工业和作为支架(从命令行)或IDE(如 IDEA)内单独的 Java 程序。
- JUnit是开发人员使用的回归测试框架,用于在Java中实现单元测试,加快编程速度,提高代码质量
二、特征
- 用于测试期望结果的断言(Assertion)
- 用于共享共同测试数据的测试工具
- 用于方便的组织和运行测试的测试套件
- 图形和文本的测试运行器
三、问题
① 为什么使用Junit?
- 因为main方法是唯一程序入口
- 测试时,一个类只有一个方法能写,不方便测试
- junit在这里插入代码片单元测试,一个类就可以执行多个方法
- 在代码的空白处点击右键,选择 Run As -----> Java Application 就可以运行main方法里面的
- 右键,选择 Run As -----> Junit Test 就可以运行测试单元
(右边为绿色表示正常运行)
② 当一个类中有多个方法的时候,是否可以任意执行或者全部执行?
- 可以,可以用Junit实现
- junit是第三方,不属于jdk就是第三方(sun,oracle),需要导入它的支持(jar包,eclipse直接支持)-导包
- 需要执行方法上戴个帽子,@Test 注解Annotation,有了这个标识,这个方法就可以进行测试执行
③ 如果@Test报错,处理办法?
- 鼠标移到报错位置,选择Add JUnit 4 libray to the build path
- 在项目根目录多了一个JUnit 4,代码中才可以使用@Test,可以进行单元测试
测试用例代码演示
package hello;
import org.junit.Test;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world!!");
}
//juint 单元测试
@Test
public void bbb() {
System.out.println("bbb");
}
@Test
public void aaa() {
System.out.println("aaa");
}
@Test
public void ccc() {
System.out.println("ccc");
}
}
JUnit单元测试规定:
-
java.lang.Exception: Method aaa() should not be static 它不能用static进行修饰
-
它针对方法
The annotation @Test is disallowed for this location
@Test注解,不支持在类上使用 -
java.lang.Exception: Method aaa should have no parameters 单元测试方法不能有参数
-
main方法java规定就是来java application方式来执行,不是给junit来执行,main方法上不能加@Test
-
junit执行有没有执行顺序,结果:没有执行顺序,反射顺序(无序)
-
junit执行时能不能只执行指定方法?
默认在空白处执行,执行所有方法,无序的。
如果选中一个方法,它就只执行这个指定方法。 -
能不能就执行a和b?
不能挑多个方法,实际情况下没必要,底层也不支持 -
单元测试时类名不能使用Test不能类名
-
…