Junit单元测试下载、配置、使用
目录
如何下载(junit.jar和hamcrest-core都要下载):
什么是Junit单元测试?
JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。所谓 xUnit,就是一套基于测试驱动开发的测试框架,它的机制:将程序 预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性。
单元测试是一个对单一实体(类或方法)的测试
为什么要使用Junit单元测试?
在刚刚接触到Junit的时候有一个这样的问题,进行测试的话可以使用main函数,那为什么要使用junit?
总结:有以下几点
- Junit单元测试可单个多个运行,多个共享数据
- 有很多注解,可以在之前...之后运行
- 比main代码少一点
- 断言测试预期结果
最重要的是规范以及方便,main写完测试完后 都是注释或者直接删掉,而Junit不需要
如何下载(junit.jar和hamcrest-core都要下载):
1,进入下载页面选择下载的文件
下载完后就是这两个文件:
在IDEA中配置Junit(以下好的文件进行配置)
在项目目录中新建一个新的Directory目录,取个名 lib
- 将下载好的两个jar包复制到建好的 lib目录中
- 选择lib目录然后点击右键选择“Add as Library......”
- 这样就完成了
Junit4常用注解
@Test | 将一个方法标记为测试方法 |
---|---|
@Before | 每一个测试方法调用前必执行的方法 |
@After | 每一个测试方法调用后必执行的方法 |
@BeforeClass | 所有测试方法调用前执行一次,在测试类没有实例化之前就已被加载,需用static修饰 |
@AfterClass | 所有测试方法调用后执行一次,在测试类没有实例化之前就已被加载,需用static修饰 |
@Ignore | 暂不执行该方法 |
1,JUnit4的单元测试用例执行顺序为:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
2,每一个测试方法的调用顺序为:
@Before -> @Test -> @After;
Junit单元测试的使用
1,@Test注解示例:
import org.junit.Test;
public class Demo {
@Test
public void example1(){
System.out.println("示例1");
}
@Test
public void example2(){
System.out.println("示例2");
}
@Test
public void example3(){
System.out.println("示例3");
}
}
2、用例的执行顺序
如下图所示,测试用例的执行并不会按照我们编写代码的顺序来执行
@Test
public void example3(){
System.out.println("示例1");
}
@Test
public void example1(){
System.out.println("示例2");
}
@Test
public void example2(){
System.out.println("示例3");
}
3,@Before示例:
- junit测试类中的任意一个测试方法执行 前 都会执行此方法
- 该类型的方法可以被用来为测试方法初始化所需的资源。
import org.junit.Before;
import org.junit.Test;
public class Demo {
@Before
public void example4(){
System.out.println("示例Before");
}
@Test
public void example3(){
System.out.println("示例1");
}
@Test
public void example1(){
System.out.println("示例2");
}
@Test
public void example2(){
System.out.println("示例3");
}
}
4,@After:
- junit测试类中的任意一个测试方法执行后 都会执行此方法,即使被@Test 或 @Before修饰的测试方法抛出异常
该类型的方法被用来关闭由@Before注解修饰的测试方法打开的资源。
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class Demo {
@Before
public void example4(){
System.out.println("示例Before");
}
@After
public void example5(){
System.out.println("After");
System.out.println();
}
@Test
public void example1(){
System.out.println("示例1");
}
@Test
public void example2(){
System.out.println("示例2");
}
@Test
public void example3(){
System.out.println("示例3");
}
}
5,@BeforeClass:
- 只被执行一次
- 运行junit测试类时第一个被执行的方法
这样的方法被用作执行计算代价很大的任务,如打开数据库连接。被@BeforeClass 注解的方法应该是静态的(即 public static类型的)。
import org.junit.*;
public class Main {
@BeforeClass
public static void example1() {
System.out.println("示例BeforeClass");
}
@Test
public void example3() {
System.out.println("示例3");
}
}
6,@AfterClass:
- 只被执行一次
- 运行junit测试类是最后一个被执行的方法
该类型的方法被用作执行类似关闭数据库连接的任务。被@AfterClass 注解的方法应该是静态的(即 public static类型的)。
import org.junit.*;
public class Main {
@BeforeClass
public static void example1() {
System.out.println("示例BeforeClass");
}
@AfterClass
public static void example4() {
System.out.println("示例AfterClass");
}
@Test
public void example3() {
System.out.println("示例3");
}
@Test
public void example2() {
System.out.println("示例3");
}
}
7,@Ignore:
忽略测试(Ignore test)被用来禁止执行junit测试类的某些或者全部测试方法。
- Junit 4 Ignore Test 应用到某些测试方法上
import org.junit.*;
public class Main {
@Test
public void example1() {
System.out.println("示例1");
}
@Test
public void example2() {
System.out.println("示例2");
}
@Test
public void example3() {
System.out.println("示例3");
}
@Ignore
@Test
public void example4() {
System.out.println("示例4");
}
@Test
public void example5() {
System.out.println("示例5");
}
}
标签:示例,单元测试,System,public,println,Test,Junit,下载,out
From: https://www.cnblogs.com/yhm050305/p/17830609.html