目录
1.软件及环境
2.环境配置
3.常用注解
3.1@Test
3.2@Before,@BeforeClass,@After,@AfterClass
3.3超时测试(@Test(timeout=xxx))
3.4异常测试(@Test(expected=*.class))
3.5忽略测试(@Ignore)
3.6测试套件(@RunWith,@SuitClasses)
3.7参数化测试(@RunWith(Parameterized.claa),@Parameters)
4.常用断言
软件:IDEA
环境:JDK1.8,Junit 4.13
这里我们采用IDEA编辑器,利用Maven对项目进行构建,如下:

然后项目构建完之后,首先第一步是进入pom文件,添加Junit4.13依赖,然后第二步是在test->java路径下创建测试类(在这里我创的是MyTest)

pom.xml文件添加依赖:
JUnit4常用注解有:
@Test 注解用于将一个普通的方法修饰成一个测试方法,每个被 @Test 注解标记的 public void 方法都会被 JUnit 框架当作测试方法来执行。

@ Before 注解表示该方法必须在类中的每个测试方法之前执行,一般用于初始化数据。如果要在每个测试用例之前执行一些语句,可以使用此注解。
使用 @After 注解修饰的方法会在执行每个测试方法后执行,一般用于在每个测试方法后重置某些变量、删除临时变量等。
@BeforeClass 注解修饰的方法会在类的所有测试方法执行之前执行一次。一般可用于初始化一些共享的配置方法(例如,连接到数据库)。
当需要在执行完类的所有测试方法之后执行某些操作(例如,断开数据库连接),可使用 @AfterClass 注解来修饰。


这里我们设置1秒,代码里进行线程等待1.5s,可以看到会出现报错信息

这边我们对除法进行测试,我们都知道除数不能为0。

可以看到出现异常:ArithmeticException,因此我们在测试中对该异常进行测试:

在单元测试过程中有时候会出现需要临时跳过部分测试类或测试方法的情况,比如,部分测试类或测试方法还未编写完成。JUnit 4 中提供的 @Ignore 注解可以帮助我们在执行单元测试时忽略不需要执行的测试类或方法,当需要暂时不执行特定的测试类或测试方法时可以使用 @Ignore 注解。

一次都只执行一个测试类,但在实际的单元测试项目中测试类往往非常多,一个一个地执行显然不太现实。JUnit 提供的测试套件 ( Test Suite ) 可以将多个测试类组织在一起,批量运行多个测试类。
ClassAtest类
ClassBtest类
这里我们利用一个类,同时对ClassATest和ClassBTest里面的测试方法进行测试,如:我们这里利用AllTests类
AllTests类
结果显示

使用 Junit 执行单元测试用例时经常会遇到操作步骤相同、输入数据不同的一组测试用例,遇到这种情况,我们可以使用一个 Junit 测试方法执行一个测试用例的方式来执行。但是,使用这种方式需要耗费更多的时间编写测试代码,且测试代码冗余严重,比较难维护,如果一个操作步骤改变,会需要修改很多代码。JUnit 4 中新引入的参数化方法可以对操作步骤相同的测试用例集进行参数化,从而大大提高编写测试用例的效率,提高用例的可维护性。
将以计算 10 以内整数阶乘的类 Factorial 为例介绍 JUnit 4.10 中参数化的具体方法,待测试代码如下:
测试类代码如下:
结果可以看到,期望值与实际值是相同的,且进行批量测试。

版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/9955.html