注解

@Test: 测试方法,在这里还可以测试期望异常和超时时间。
@Before: 每个测试方法执行之前执行的方法。
@BeforeClass: 一个测试类中所有测试方法执行之前执行的方法,只执行一次,<b>且方法必须为static的。</b>
@After: 每个测试方法执行之后执行的方法。
@AfterClass: 一个测试类中所有测试方法执行之后执行的方法,只执行一次,<b>且方法必须为static的。</b>
@Ignore: 忽略的测试方法。
@RunWith: 指定测试类使用某个运行器。
@Parameters: 参数化测试,指定测试类的测试数据集合。
@FixMethodOrder: 注解在测试类上指定测试方法按一定顺序规则来执行,有三种。

一个测试类单元测试的执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的执行顺序为:

@Before –> @Test –> @After

断言

断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过。

JUnit4.x中的断言核心方法如下:

assertArrayEquals(expecteds, actuals): 查看两个数组是否相等。
assertEquals(expected, actual): 查看两个对象是否相等。类似于字符串比较使用的equals()方法。
assertNotEquals(first, second): 查看两个对象是否不相等。
assertNull(object): 查看对象是否为空。
assertNotNull(object): 查看对象是否不为空。
assertSame(expected, actual): 查看两个对象的引用是否相等。类似于使用“==”比较两个对象。
assertNotSame(unexpected, actual): 查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象。
assertTrue(condition): 查看运行结果是否为true。
assertFalse(condition): 查看运行结果是否为false。
assertThat(actual, matcher): 查看实际值是否满足指定的条件。
fail(): 让测试失败。

套件测试

测试套件意味着捆绑几个单元测试用例并且一起执行他们。在 JUnit 中,@RunWith和@Suite注释用来运行套件测试。

参数化测试

一个测试类也可以被看作是一个参数化测试类。但它要满足下列所有要求:

  1. 该类被注解为@RunWith(Parameterized.class)。
  2. 这个类有一个构造函数,存储测试数据。
  3. 这个类有一个静态方法生成并返回测试数据,并注明@Parameters注解。
  4. 这个类有一个测试,它需要注解@Test到方法。

异常测试

它用于测试由方法抛出的异常。@Test(expected = ArithmeticException.class)

超时测试

超时测试是指,一个单元测试运行时间是否超过指定的毫秒数,测试将终止并标记为失败。@Test(timeout = 1000)

出处:https://blinkfox.github.io/2018/11/15/hou-duan/java/dan-yuan-ce-shi-zhi-nan/#toc-heading-4

JUnit 4.x 知识点的更多相关文章

  1. JUnit 5.x 知识点

    出处:https://blinkfox.github.io/2018/11/15/hou-duan/java/dan-yuan-ce-shi-zhi-nan/#toc-heading-14 表面上来看 ...

  2. 20165323 实验二 Java面向对象程序设计

    一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:杨金川 学号:20165323 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:13:45 - 15:25 实验序号:二 ...

  3. junit 知识点

    JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 测试工具 测试工具是一整套固定的工具用于基线测试.测试工具的目的是为了确保测试能够在共享且固定的环境中运行,因此保证测 ...

  4. Junit使用教程 转

    几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白. 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用.为了从此不再菜鸟,特此总结整理了下Junit ...

  5. Maven(二)核心知识点

    Maven有一些核心的知识点需要了解,比如坐标.仓库.插件.生命周期等概念,这里将依次解释. 坐标 Maven以构件来组成基本的控制单元,而定义这个构件的标示,Maven给定义为“坐标”.坐标是Mav ...

  6. JUnit单元测试--小试牛刀

    单元测试更多的是在开发阶段完成,开发人员每写一个函数的时候都会写相应的单元测试.对于java代码,普遍使用的是jUnit,根据jUnit可以自己相应的开发一套自动化测试框架.这个的前提是要学会juni ...

  7. junit浅学笔记

    JUnit是一个回归测试框架(regression testing framework).Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(Wh ...

  8. java知识积累——单元测试和JUnit(二)

    首先来复习一下几个重要知识点,然后接着进行一些介绍.在上一篇文章中,我曾经贴过下面这张图片: 在Which method stubs would you like to create?这里,现在结合4 ...

  9. Junit使用教程(一)

    几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白. 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用.为了从此不再菜鸟,特此总结整理了下Junit ...

随机推荐

  1. SVN与GIT工具使用对比

    版本工具 差异 svn git 系统特点 1.集中式版本控制系统(文档管理很方便) 2.企业内部并行集中开发 3.windows系统上开发推荐使用 4.克隆一个拥有将近一万个提交(commit),五个 ...

  2. Hyper-V虚拟机安装Ubuntu,启动的时候会出现:Please remove the installation medium,then press ENTER

    Hyper-V虚拟机安装Ubuntu成功以后,重启的时候页面会一直卡在下面,并报Please remove the installation medium,then press ENTER,这是因为启 ...

  3. protobuf, python Enum

    继承enum.Enum的python class,其实是一个, name-value的关系,可以直接className(value)得到一个类.比如 import enum class xx(enum ...

  4. k8s-Annotation(注解)

    k8s-Annotation(注解) Annotation与Label类似,也使用key/value键值对的形式进行定义. Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(M ...

  5. 关于redis key命名规范的设计

    一.实现目标 简洁,高效,可维护 二.键值设计规约 1 . Redis key命名风格 [推荐]Redis key命名需具有可读性以及可管理性,不该使用含义不清的key以及特别长的key名: [强制] ...

  6. VS2017 注册

    Visual Studio 2017 序列号 Key 激活码 VS2017 注册码 Visual Studio 2017(VS2017) 企业版 Enterprise 注册码 序列号:NJVYC-BM ...

  7. 百度webuploader如何实现秒传与断点续传

    因为这是小众需求,所以默认没有做在webuploader里面,而只是提供hook接口,让用户很简单的扩展此功能. 那么,都有哪些重要的hook接口呢? before-send-file 此hook在文 ...

  8. CSS怎么隐藏滚动条(三种方法)

    xhtml中隐藏滚动条在用ie6浏览有框架的xhtml页面的时候,默认会水平和垂直滚动条会一起出现,这是ie6的一个bug,在firefox上是正常的,出现的原因是其对XHTML 1.0 transi ...

  9. selenium 开启开发者工具(F12)

    selenium 开启开发者工具(F12) options = webdriver.ChromeOptions(); options.add_argument("--auto-open-de ...

  10. JavaScript 之 location 对象

    一.location 对象 location 对象是 window 对象下的一个属性,使用的时候可以省略 window 对象. 常用属性: location.href = 'http://www.ba ...