JUnit为我们提供了一些辅助函数,他们用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常,把这些辅助函数称为断言。下面我们来介绍一下JUnit的各种断言。

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

断言核心方法

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() 让测试失败

注解

@Before 初始化方法

@After 释放资源

@Test 测试方法,在这里可以测试期望异常和超时时间

@Ignore 忽略的测试方法

@BeforeClass 针对所有测试,只执行一次,且必须为static void

@AfterClass 针对所有测试,只执行一次,且必须为static void

@RunWith 指定测试类使用某个运行器

@Parameters 指定测试类的测试数据集合

@Rule 允许灵活添加或重新定义测试类中的每个测试方法的行为

@FixMethodOrder 指定测试方法的执行顺序

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

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

每一个测试方法的调用顺序为:

@Before –> @Test –> @After


   1、assertEquals
  函数原型1:assertEquals([String message],expected,actual)

参数说明:
  message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  expected是期望值,通常都是用户指定的内容。
  actual是被测试的代码返回的实际值。
例:assertEquals("equals","1","1");

  函数原型2:assertEquals([String message],expected,actual,tolerance)
参数说明:
  message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  expected是期望值,通常都是用户指定的内容。
  actual是被测试的代码返回的实际值。
  tolerance是误差参数,参加比较的两个浮点数在这个误差之内则会被认为是相等的。
  例:assertEquals ("yes",5.8,11.0/2.0,0.5);

  2、assertTrue
   函数原型:assertTrue ([String message],Boolean condition)
   参数说明:
    message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
     condition是待验证的布尔型值。
   该断言用来验证给定的布尔型值是否为真,假如结果为假,则验证失败。当然,更有验证为假的测试条件:

函数原型:assertFalse([String message],Boolean condition)
      该断言用来验证给定的布尔型值是否为假,假如结果为真,则验证失败。
       例: assertTrue("true",1==1);
          assertFalse("false",2==1);

  3、assertNull
  函数原型:assertNull([String message],Object object)
参数说明:
   message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  object是待验证的对象。
  该断言用来验证给定的对象是否为null,假如不为null,则验证失败。相应地,还存在能够验证非null的断言:
  函数原型:assertNotNull([String message],Object object)
该断言用来验证给定的对象是否为非null,假如为null,则验证失败。
例:assertNull("null",null);
   assertNotNull("not null",new String());

  4、assertSame
  函数原型:assertSame ([String message], expected,actual)
参数说明:
  message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  expected是期望值。
  actual是被测试的代码返回的实际值。
  该断言用来验证expected参数和actual参数所引用的是否是同一个对象,假如不是,则验证失败。相应地,也存在验证不是同一个对象的断言:

  函数原型:assertNotSame ([String message], expected,actual)
该断言用来验证expected参数和actual参数所引用的是否是不同对象,假如所引用的对象相同,则验证失败。
例:assertSame("same",2,4-2);
   assertNotSame("not same",2,4-3);

  5、Fail
  函数原型:Fail([String message])
参数说明:
   message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  该断言会使测试立即失败,通常用在测试不能达到的分支上(如异常)。

转载于:https://blog.51cto.com/zlfwmm/1761751

JUnit的各种断言相关推荐

  1. JUnit测试常用断言

    JUnit主要使用断言来进行单元测试,常见的断言如表中所示: 断言 功能 assertEquals([String message], expected value, actual value) 检查 ...

  2. junit单元测试断言_简而言之,JUnit:单元测试断言

    junit单元测试断言 简而言之,本章涵盖了各种单元测试声明技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了主题,并说明了如何创建和使用自定 ...

  3. 简而言之,JUnit:单元测试断言

    简而言之,本章涵盖了各种单元测试断言技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了该主题,并说明了如何创建和使用自定义匹配器/断言. 单元 ...

  4. JUnit二(断言Asserts)

    JUnit-断言(Asserts) 一.断言概述 JUnit的核心内容就是断言,其主要作用在于判断我们程序执行的结果是否跟我们预期的一致,在上一篇中我们就用到的assertEquals就是其中一个断言 ...

  5. java三段式if_Java几种常用的断言风格你怎么选?

    日常工作中,不管你是写Unit Test,还是采用TDD的编程方式进行开发,都会遇到断言.而断言的风格常见的会有Assert.BDD风格,对于这些常见的断言风格你怎么选择呢? 01 Assert风格 ...

  6. 使用JUnit进行单元测试

    简介 JUnit 是一个 Java 编程语言的单元测试框架.JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一. 好处 可以书写一系列的 ...

  7. 腾讯Android自动化测试实战3.1.4 Robotium的控件获取、操作及断言

    3.1.4 Robotium的控件获取.操作及断言 Robotium是一款在Android客户端中的自动化测试框架,它需要模拟用户操作手机屏幕.要完成对手机的模拟操作,应该包含以下几个基本操作: (1 ...

  8. 软件测试系列之四 单元测试(Junit)

    在线课堂:https://edu.csdn.net/lecturer/1516  单元测试简介 单元测试就是测试程序员依据其所设想的方式开发出来的程序是否产生了预期的结果.单元测试是与软件开发生命周期 ...

  9. JUnit 5符合AssertJ

    JUnit 5在断言库中带来了很多改进,这主要归功于Java 8和Lambda Expression支持以及新断言(如assertAll , assertTimeout或assertThrows . ...

最新文章

  1. 关于AD编程的一些资料
  2. MySQL学习总结(三)索引
  3. easypoi实现Excel导入
  4. 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
  5. Leetcode 203. 移除链表元素 解题思路及C++实现
  6. 软件公司与非软件公司区别(纯个人看法)
  7. S3C2440 IIS操作 uda134x录放音
  8. Redis 的安装与使用
  9. 从pheatmap无缝迁移至ComplexHeatmap
  10. Spring IOC BeanDefinition解析
  11. linux终端怎样ise,Linux下ISE开发环境的安装zz
  12. 虚拟化桌面初始化配置处理
  13. 在linux中查找重复的文件夹,如何在Linux上找出并删除重复的文件:FSlint
  14. 团队开发-CodePlex的工作模式和团队协作开发
  15. Linux中解压解压rar文件
  16. 计算机三级数据库技术 知识点
  17. Saliency map (fixation map) 生成热点图-python实现
  18. DNS基础:域名解析、多重域名解析、特殊域名解析、主从同步设置
  19. 通讯录2.0(动态内存增长版本)
  20. jsp学生体育成绩管理系统

热门文章

  1. SpringBoot处理JSON数据
  2. excel如何做单元格下拉和根据文字自动变色
  3. java遍历集合元素_遍历java集合元素的方法
  4. 神策数据获华为鲲鹏技术认证,正式成为华为鲲鹏展翅 ISV 合作伙伴
  5. 数据分析师可不是啥好工作
  6. JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介
  7. python--通过xpath相对节点位置查找元素(续)
  8. 德国Renusol进军南非市场 瞄准屋顶光伏
  9. android Base64加密解密
  10. [单刷APUE系列]第五章——标准I/O库