1.软件及环境
软件:IDEA
环境:JDK1.8,Junit 4.13
2.环境配置
这里我们采用IDEA编辑器,利用Maven对项目进行构建,如下:
然后项目构建完之后,首先第一步是进入pom文件,添加Junit4.13依赖,然后第二步是在test->java路径下创建测试类(在这里我创的是MyTest)
pom.xml文件添加依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
3.常用注解
JUnit4常用注解有:
注解 | 描述 |
@Test | 标注于方法之上,表示该方法是一个测试方法 |
@Test(timeout=xxx) | 约束测试方法运行的最长时间,超时则测试失败 |
@Test(expected=*.class) | 用于对方法内部抛出的异常进行验证 |
@Before | 在每个测试用例之前执行某些语句,例如,初始化数据等 |
@After | 在每个测试用例之后执行某些语句,例如,重置变量、删除临时文件、变量等 |
@BeforeClass | 在当前测试类的所有测试用例之前执行某些语句,例如,建立连接 |
@AfterClass | 在当前测试类的所有测试用例之后执行某些语句,例如,执行所有测试用例后释放资源 |
@Ignore | 执行时忽略(跳过)测试方法 |
@Runwith | 放在测试类名之前,用来确定该类的运行方式,也可以不标注,如不标注则会使用默认运行器 |
@SuiteClasses | 用于在套件测试中标识运行的测试类 |
@Parameters | 用于参数化测试 |
3.1@Test
@Test 注解用于将一个普通的方法修饰成一个测试方法,每个被 @Test 注解标记的 public void 方法都会被 JUnit 框架当作测试方法来执行。
3.2@Before,@BeforeClass,@After,@AfterClass
@ Before 注解表示该方法必须在类中的每个测试方法之前执行,一般用于初始化数据。如果要在每个测试用例之前执行一些语句,可以使用此注解。
使用 @After 注解修饰的方法会在执行每个测试方法后执行,一般用于在每个测试方法后重置某些变量、删除临时变量等。
@BeforeClass 注解修饰的方法会在类的所有测试方法执行之前执行一次。一般可用于初始化一些共享的配置方法(例如,连接到数据库)。
当需要在执行完类的所有测试方法之后执行某些操作(例如,断开数据库连接),可使用 @AfterClass 注解来修饰。
3.3超时测试(@Test(timeout=xxx))
这里我们设置1秒,代码里进行线程等待1.5s,可以看到会出现报错信息
3.4异常测试(@Test(timeout=xxx))
这边我们对除法进行测试,我们都知道除数不能为0。
可以看到出现异常:ArithmeticException,因此我们在测试中对该异常进行测试:
3.5忽略测试(@Ignore)
在单元测试过程中有时候会出现需要临时跳过部分测试类或测试方法的情况,比如,部分测试类或测试方法还未编写完成。JUnit 4 中提供的 @Ignore 注解可以帮助我们在执行单元测试时忽略不需要执行的测试类或方法,当需要暂时不执行特定的测试类或测试方法时可以使用 @Ignore 注解。