Junit是Java单元测试框架,一般Eclipse里面会集成这个Junit4测试工具

既然是测试工具,虽然开发用得比较多,但作为测试人员也需要具备会Junit测试的思想,况且技多不压身

这里简单介绍下用法:

1、在eclipse中创建一个junit4Test工程

点击“File” -> “New” -> “Java Project”,出现如下界面,填写工程名称junit4Test:

点击Next或者Finish,即创建好了junit4Test工程

2、创建com.junit4Test包

右键“junit4Test”工程名称,选择“New” -> “Package”,即得到包的配置界面如下:

填写包名,然后点击Finish即创建了junit4TestPackage包

3、创建被测试类和方法

这里我们用简单的加法来做被测试对象

右击包名“junit4TestPackage” -> “New” -> “Class”,出现下面的配置界面:

配置好类名称,然后点击“Finish”即创建了类,然后在类里面写一个加法的方法:

package com.junit4Test;

public class Add {

public int addTest(int x,int y){

return x + y;

}

}

4、创建测试包

创建方法和上面的创建包一样,取个名字“junit4AddTest”

5、创建测试类

右键测试包名“com.junit4AddTest” -> “New” -> “JUnit Test Case”,如果你没有导入Junit的jar包,那你需要先导入下,右击工程名称“junit4Test”,选择“Properties”或者选择“Build Path” -> “Configure Build Path” ,出现如下配置界面:

按照上面步骤配置即可。然后按照开始说的,就会出现如下配置界面:

写好测试类名称,选择好需要的方法(如无需要可以不选择)和需要测试的类(因为不在一个包里面,这里填写的是包名+类名),然后点击“Next”:

勾选被测试方法addTest,然后选择“Finish”,这时候就创建好了用例:

这时候看到的是一个空的测试方法,我们需要调用被测试方法并做断言,上面右侧红框中应该是如下代码:

package com.junit4AddTest;

import static org.junit.Assert.*;

import com.junit4Test.*;

import org.junit.Test;

public class AddTest {

@Test

public void testAddTest() {

int z = new Add().addTest(1,2);

assertEquals(3,z);

}

}

这时候就可以执行测试类了,右击测试用例可以看到,原来是执行java程序,现在变成了执行junit Test:

执行结果如下:

执行结果是Runs:1/1(总共一个用例,执行了一个用例),Errors:0(没有错误),Failures:0(没有失败)

如果我们把断言值改成:assertEquals(2,z);,则结果如下:

把断言改了之后,左侧显示Failures:1(失败一个用例),用例也显示为

,左侧下面也给出了Trace。

我们在测试类中复制一个testAddTest方法,一个错误的一个成功的:

package com.junit4AddTest;

import static org.junit.Assert.*;

import com.junit4Test.*;

import org.junit.Test;

public class AddTest {

@Test

public void testAddTest() {

int z = new Add().addTest(1,2);

assertEquals(2,z);

}

@Test

public void testAddTest1() {

int z = new Add().addTest(2,2);

assertEquals(4,z);

}

}

我们再执行下看看结果如下:

失败的依然是标记失败

------------------------------------------------------------------华丽的分割线------------------------------------------------------------------

补充说明下Junit 的几种注解(和python中的装饰器类似):

1.@Test: 测试方法

a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过

b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过

2.@Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码(JUnit5中使用@Disabled代替)

3.@Before: 每一个测试方法之前运行(Junit5中使用@BeforeEach)

4.@After: 每一个测试方法之后运行(Junit5中使用@BeforeEach)

5.@BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分@before,是所有测试方法(Junit5中使用@BeforeAll)

6.@AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After(Junit5中使用@AfterAll)

7.@Parameters:表示该方法是个参数化测试(Junit5中使用@ParameterizedTest)

需要导入如下:

import org.junit.Test;

import org.junit.Ignore;

import org.junit.Before;

import org.junit.After;

import org.junit.BeforeClass;

import org.junit.AfterClass;

如果在创建JUnit case的时候,勾选了相关项,则在case里面就会自动生成(下图红色框):

setUpBeforeClass对应BeforeClass

setUp对应Before

tearDownAfterClass对应AfterClass

tearDown对应After

这个有点类似python中unittest框架中的setUp和tearDown,包括里面的断言。使用过的小伙伴应该一看就懂

另外Junit框架和python中unittest框架类似的是测试套件(testsuite)这个概念,下面讲解下套件如何使用

我们在原来加法基础上再增加一个被测类(减法),如下:

package com.junit4Test;

public class Minus {

public int Minus(int x,int y){

return x - y;

}

}

则被测包中有俩个被测类:

在测试类中响应增加减法的测试类:

package com.junit4AddTest;

import static org.junit.Assert.*;

import org.junit.Test;

import com.junit4Test.*;

public class MinusTest {

@Test

public void test() {

int z = new Minus().Minus(5,2);

assertEquals(3,z);

}

}

这样,我们就有俩个类三个测试用例:

我们在测试类的包里面增加一个套件类,来统一管理测试类:

测试套件代码如下:

package com.junit4AddTest;

import org.junit.runner.RunWith;

import org.junit.runners.Suite;

import org.junit.runners.Suite;

@RunWith(Suite.class)

@Suite.SuiteClasses({AddTest.class,MinusTest.class})

public class AllTestCase {

/*

* 这里不需要写任何东西

* 把需要的测试类填写到上面SuiteClasses中即可

*/

}

这样便于测试类的管理~

java 单元测试用例_Java之单元测试工具(Junit)相关推荐

  1. java 单元测试用例_Java 单元测试及JUnit的使用

    Java 单元测试: 单元测试是开发者编写的一小段代码,用于检测被测代码的一个很小的.很明确的功能是否正确. 单元测试的方法: 人工静态分析:人工阅读检测代码 自动静态分析:使用代码复查工具检查 自动 ...

  2. 单元测试工具——JUnit的使用

    ⭐️前言⭐️ 本篇文章主要介绍单元测试工具JUnit的使用.

  3. 【软件测试】单元测试工具---Junit详解

    1.junit 1.1 junit是什么 JUnit是一个Java语言的单元测试框架. 虽然我们已经学习了selenium测试框架,但是有的时候测试用例很多,我们需要一个测试工具来管理这些测试用例,J ...

  4. 单元测试用例_前端单元测试实践

    一说到单元测试,可能对于业务一线同学来说,心理立马就会无形中有一种压迫感,心想 "业务都做不完了,写个球的单元测试,先保证功能完备,赶紧上线才是王道",这句话的核心是以业务为重,没 ...

  5. 单元测试工具JUnit

    JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JUnit有它自己的JUnit ...

  6. 推荐10款Java程序员使用的单元测试工具

    前言 随着DevOp的不断流行,自动化测试慢慢成为Java开发者的关注点.因此,本文将分享10款优秀的单元测试框架和库,它们可以帮助Java开发人员在其Java项目上编写单元测试和集成测试. 1. J ...

  7. java导出类_java导出excel工具类

    java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...

  8. java 微型数据库_Java 9代码工具:使用Java微型基准测试工具的实践会话

    java 微型数据库 用肉眼看,基准测试似乎只是确定执行某些代码需要花费多长时间的简单问题. 但是,通常情况下,这是幼稚的方法. 提供具有准确和可重复结果的有意义的基准并非易事. 在本文中,我们将向您 ...

  9. 如何写好测试用例以及go单元测试工具testify简单介绍

    背景 ​ 最近在工作和业余开源贡献中,和单元测试接触的比较频繁.但是在这两个场景之下写出来的单元测试貌似不太一样,即便是同一个代码场景,今天写出来的单元测试和昨天写的也不是很一样,我感受到了对于单元测 ...

最新文章

  1. 牛客练习赛61 D 最短路变短了(最短路,反向最短路)难度⭐⭐⭐★
  2. python为什么运行慢_为什么你写的Python运行的那么慢呢?
  3. Oracle根据符合条件的数据循环批量更新
  4. vulnhub_内网渗透测试的记录——网络安全
  5. RabbitMQ之Exchange分类
  6. 搭搭机器人科技活动中心怎么样_搭搭乐乐机器人怎么样?感受科技创收力量
  7. 简单实现KeyChain实例
  8. python两人一碰_python运用pygame库实现双人弹球小游戏
  9. aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址
  10. Linux之父新年首次“炮轰”:英特尔在扼杀整个 ECC 行业
  11. 通过数据流处理-微信小程序生成临时二维码
  12. 初装Windows11无法打开Windows安全中心主界面
  13. 芯烨 Xprinter XP-DT108A 打印机驱动
  14. 深度学习?不一定非得搞“黑箱”
  15. ps|grep命令详解
  16. 教你如何入门【大数据开发】?
  17. 判断正方形和圆形相交
  18. AR室内导航-Three.js
  19. 新品齐聚CES 各家首发预示2013智能机大屏四核走向(转)
  20. 假设检验与常见的统计检验方法

热门文章

  1. zoj 2853 Evolution
  2. windows10 下映射一个新的盘Z
  3. 开源协议(GPL,LGPL,BSD,MIT,Apache,Creative)
  4. 【Android测试】MonkeyRunner之录制回放
  5. 惊喜警报!Mini XMan线上快闪活动即将来袭!
  6. 川教版计算机三年级上册教案,川教版小学三年级上期信息技术教学计划
  7. 常微分方程解法(2)例题
  8. java知识体系整理(二)JVM、GC回收及调优
  9. revit开发__箱梁粱体生成
  10. python两个excel字段模糊匹配_Excel模糊查找中使用的算法 - python