当前位置:网站首页 > 技术博客 > 正文

java单元测试工具有哪些



目录

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(timeout=xxx) 约束测试方法运行的最长时间,超时则测试失败 @Test(expected=*.class) 用于对方法内部抛出的异常进行验证 @Before 在每个测试用例之前执行某些语句,例如,初始化数据等 @After 在每个测试用例之后执行某些语句,例如,重置变量、删除临时文件、变量等 @BeforeClass 在当前测试类的所有测试用例之前执行某些语句,例如,建立连接 @AfterClass 在当前测试类的所有测试用例之后执行某些语句,例如,执行所有测试用例后释放资源 @Ignore 执行时忽略(跳过)测试方法 @Runwith 放在测试类名之前,用来确定该类的运行方式,也可以不标注,如不标注则会使用默认运行器 @SuiteClasses 用于在套件测试中标识运行的测试类 @Parameters 用于参数化测试

@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 中参数化的具体方法,待测试代码如下:

 
   

        测试类代码如下:

 
   

        结果可以看到,期望值与实际值是相同的,且进行批量测试。

断言 描述 assertEquals 断言两个值是否相等 assertTrue 断言一个条件是否为真 assertFalse 断言一个条件是否为假 assertNull 断言一个对象是否为 null assertNotNull 断言一个对象是否不为 null assertSame 断言两个对象是否引用了相同的对象 assertNotSame 断言两个对象是否未引用同一个对象 assertArrayEquals 断言预期数组和结果数组是否相等

  • 上一篇: mcrtty
  • 下一篇: python 安装win32gui
  • 版权声明


    相关文章:

  • mcrtty2025-09-28 17:30:02
  • okhttp官方文档2025-09-28 17:30:02
  • 增删改查数据库语句2025-09-28 17:30:02
  • cisco模拟器下载2025-09-28 17:30:02
  • json字符串处理2025-09-28 17:30:02
  • python 安装win32gui2025-09-28 17:30:02
  • 赛博朋克2077黑客技术怎么用2025-09-28 17:30:02
  • javascript判断数据类型2025-09-28 17:30:02
  • rabbitmq原理和架构2025-09-28 17:30:02
  • 怎么设置静态IP地址2025-09-28 17:30:02