Junit单元测试下载、配置、使用

Junit单元测试下载、配置、使用

Junit单元测试下载、配置、使用

目录

什么是Junit单元测试?

为什么要使用Junit单元测试?

如何下载(junit.jar和hamcrest-core都要下载):

在IDEA中配置Junit(以下好的文件进行配置)

Junit4常用注解

Junit单元测试的使用

1,@Test注解示例:

2、用例的执行顺序:

3,@Before示例:

4,@After:

5,@BeforeClass:

6,@AfterClass:

7,@Ignore:

什么是Junit单元测试?

JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。所谓 xUnit,就是一套基于测试驱动开发的测试框架,它的机制:将程序 预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性。

单元测试是一个对单一实体(类或方法)的测试

为什么要使用Junit单元测试?

在刚刚接触到Junit的时候有一个这样的问题,进行测试的话可以使用main函数,那为什么要使用junit?

总结:有以下几点

Junit单元测试可单个多个运行,多个共享数据

有很多注解,可以在之前...之后运行

比main代码少一点

断言测试预期结果

最重要的是规范以及方便,main写完测试完后 都是注释或者直接删掉,而Junit不需要

如何下载(junit.jar和hamcrest-core都要下载):

Junit官网下载地址

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");

}

}

相关推荐

《星露谷物语》斧子升级方法
日博365官网手机版

《星露谷物语》斧子升级方法

📅 08-06 👁️ 7066
苹果手机数据漫游在哪里打开?出国旅行上网必备指南!
日博365官网手机版

苹果手机数据漫游在哪里打开?出国旅行上网必备指南!

📅 06-28 👁️ 3117
超频三上涨7.12%,报6.02元/股
日博365官网手机版

超频三上涨7.12%,报6.02元/股

📅 11-09 👁️ 9158
入职3个月的Java程序员面临转正,面试题+笔记+项目实战
日博365官网手机版

入职3个月的Java程序员面临转正,面试题+笔记+项目实战

📅 08-16 👁️ 9541
原来D类功放有这么多你不知道的工作原理及优缺点
365网络科技有限公司是做什么的

原来D类功放有这么多你不知道的工作原理及优缺点

📅 07-05 👁️ 5410
RPG游戏的48种职业分类:塑造沉浸式体验的角色与冒险
日博365官网手机版

RPG游戏的48种职业分类:塑造沉浸式体验的角色与冒险

📅 10-11 👁️ 2464