单元测试_JUnit常用单元测试注解介绍及代码演示 1

简介: 单元测试_JUnit常用单元测试注解介绍及代码演示
+关注继续查看

JUnit常用单元测试注解介绍及代码演示

 

by:授客 QQ:1033553122

1. 测试环境 1

2. 基础概念 1

3. 常用Annotation 1

4. 运行环境配置 3

maven配置 3

Eclipse maven运行环境配置 4

更新项目 5

5. 单元测试实践 7

被测类BinarySearch 7

测试类BinarySearchTest 8

被测类Caculator 11

测试类CaculatorTest 12

测试套件类RunAllTestClass 13

运行单元测试 13

运行结果展示 16

 

1. 测试环境

Win7

 

eclipse-java-oxygen-3a-win32-x86_64.zip

 

apache-maven-3.5.4-bin.zip

https://maven.apache.org/download.cgi

https://pan.baidu.com/s/1OUNC0kZNduXJJLbpw76GZA

 

 

2. 基础概念

测试方法 :用@Test注解修饰的一些类方法。

测试类:包含一个或多个测试方法的java类;

测试套件:用@RunWith(Suite.class) 及@SuiteClasses注解的;font-size:10.5000pt;mso-font-kerning:0.0000pt;">一个或多个测试类

 

 

3. 常用Annotation

 

@RunWith  修饰测试类,用于修改运行器,如果不指定@RunWith则使用默认运行器。当测试类被@RunWith注解修饰时,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解所指明的运行器来运行单元测试,而不使用JUnit默认的运行器。

 

常见的运行器有: 

@RunWith(JUnit4.class)  junit4的默认运行器

 

@RunWith(SpringRunner.class)  集成了spring的一些功能的运行器

 

@RunWith(Suite.class)  配合@SuiteClasses使用,用于执行测试套件的运行器  

 

@RunWith(Parameterized.class)   参数化运行器,配合@Parameters使用,参数化运行单元测试,需要在被修饰的测试类中的,提供数据的方法上加上一个@Parameters注解,例如,注意,这个提供数据的方法必须是静态的(static),并且返回一个集合(Collection)

 

我们可以为@Parameters 提供一个“名称”,以便更清晰的标记每个测试方法在每次运行时所使用的参数

 

“名称”可以包含占位符,该占位符在运行时将会被替换。

·{index}: 当前参数的索引

·{0}, {1}, …: 第一个参数,第二个参数等对应的参数值。

 

 

 

@Test  注解将一个普通方法修饰为一个测试方法,可选参数 timeout、expected,如下:

@Test(timeout = 1000)  设置被修饰的测试方法在预期时间(例中为 1000毫秒)内执行完成,否则测试失败;

 

@Test(expected = Exception.class)设置被修饰的测试方法应该抛出的预期异常,异常类型为:Exception.class,如果测试方法没有抛出预期的异常,则测试失败, 例如 @Test(expected = NullPointException.class)

 

注意:测试方法必须是public void,即公共、无返回

 

参考链接:https://www.cnblogs.com/mengdd/archive/2013/04/13/3019278.html

 

 

 

@BeforeClass  注解用于修饰测试类中的非测试方法,该方法将在其所属测试类中的所有测试方法被执行前运行,且只运行一次,可用于做一些测试基础准备,比如数据库连接,读取文件等。

 

注意:@BeforeClass修饰的方法必须是被public static void 修饰的方法,即公开、静态、无返回

 

 

 

@AfterClass  同@BeforeClass相反,注解用于修饰测试类中的非测试方法,该方法将在其所属测试类中所有测试方法执行完成后被运行,且只运行一次,可用于做一些测试后续操作,比如断开数据库连接,关闭文件等。

 

注意:@AfterClass 修饰的方法必须是被public static void 修饰的方法,即公开、静态、无返回

 

 

 

@Before 注解用于修饰测试类中的非测试方法, 该方法会在其所属测试类中的每一个测试方法运行前运行一次

 

与@BeforeClass的区别在于,@Before不止运行一次,它会在每个测试方法运行之前都运行一次。主要用于为单个测试方法做一些基础的测试准备工作。

 

注意:@Before 修饰的方法必须是被public void 修饰的方法,即公开、无返回,但不能是被static修饰的

 

 

 

@After:用于修饰测试类中的非测试方法, 同@Before相反,该方法会在其所属测试类中的每一个测试方法执行完后都运行一次

 

注意:@After 修饰的方法必须是被public void 修饰的方法,即公开、无返回,但不能是被static修饰的

 

 

 

@ignore    注释掉一个测试方法或一个类,被注释的方法或类,不会被执行;

 

 

 

4. 运行环境配置

maven配置

确保安装了java jdk并正确设置了JAVA_HOME

下载bin.zip压缩包,解压到目标路径(例中 D:\Program Files\apache-maven-3.5.4\

),设置MAVEN_HOME及Path环境变量,如下

image

 


 

 

cmd输入mvn -v测试

image

 


 

 

Eclipse maven运行环境配置

如图,Window - Preferences - Maven -User Settings,Browse指定maven配置文件所在路径

image

 


 

更新项目

为了解决项目jar包依赖之类的问题,更新项目,右键项目根目录 - Maven - Update Project

image

 



 

 

如下图,默认已经选中了工程项目,默认选项配置的基础上,勾选上“Force Update of Snapshots/Releases”,OK提交

image

 

 

目录
相关文章
|
5月前
|
Java 测试技术
单元测试_JUnit常用单元测试注解介绍及代码演示 2
单元测试_JUnit常用单元测试注解介绍及代码演示
55 0
|
11月前
|
Java Spring 容器
Spring入门+IoC注解详情【依赖注入、整合Junit、配置类】---多以案例讲述(二)
Spring入门+IoC注解详情【依赖注入、整合Junit、配置类】---多以案例讲述
109 0
Spring入门+IoC注解详情【依赖注入、整合Junit、配置类】---多以案例讲述(二)
|
11月前
|
Java Spring 容器
Spring入门+IoC注解详情【依赖注入、整合Junit、配置类】---多以案例讲述(一)
Spring入门+IoC注解详情【依赖注入、整合Junit、配置类】---多以案例讲述
74 0
Spring入门+IoC注解详情【依赖注入、整合Junit、配置类】---多以案例讲述(一)
|
测试技术
Junit单元测试类、反射、注解
Junit单元测试类、反射、注解
100 0
|
测试技术 数据库连接 Android开发
Junit - 基础注解(@BeforeClass、@Before、@Test、@After、@AfterClass)
Junit - 基础注解(@BeforeClass、@Before、@Test、@After、@AfterClass)
218 0
Junit - 基础注解(@BeforeClass、@Before、@Test、@After、@AfterClass)
认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass
认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass
255 0
【全网最全】Junit注解详解!
【全网最全】Junit注解详解!
125 0
使用Java JUnit框架里的@Rule注解的用法举例
Suppose you need to repeatedly execute some test method in your unit test case, for example, you would like to test getPrice based on the first set of test data 5 times in test method test1() while for the second set of test data, only one time should be executed. The below class RepeatDemoOne is a
使用Java JUnit框架里的@Rule注解的用法举例
|
Java Maven
JUnit 注解@Category的工作原理
JUnit 注解@Category的工作原理
114 0
JUnit 注解@Category的工作原理
相关产品
云迁移中心
推荐文章
更多