TestNG中最常用的一个断言类是Assert.java,里面有多个静态方法,这个类我们习惯叫硬断言。
对应的还有一个软断言的类,叫SoftAssert.java,这个类是需要创建实例对象,才能调用相关实例方法进行软断言。

1. Assert类(硬断言)
1) Assert.assertEquals(actual, expected)

TestNG中提供了多个33个assertEquals()方法,主要是匹配不同的数据类型和集合类操作。
我们最常用的就是assertEquals(actual, expected)或者assertEquals(actual,expected,“message1”)

自动化测试一般喜欢带上这个message1,这样抛出错误,更能快速读懂错误的原因和错误的具体业务逻辑。

public static void assertEquals(int actual, int expected, String message) {
assertEquals((Object)actual, (Object)expected, message);
}
public static void assertEquals(int actual, int expected) {
assertEquals((int)actual, (int)expected, (String)null);
}

2) assertEqualsNoOrder((actual, expect)
判断两个对象是否相同,忽略排序位置。例如下面的两个字符串数组比较。

3) assertFalse(布尔条件,“message1”)
这里来一个断言为假的方法,断言一个条件,如果返回是假,则测试通过,如果返回是真,抛出断言异常,打印message1的内容。

4) assertNotEquals(actual, expect, “message1”)
提供“不相等”断言方法,也是有6个针对不同数据类型的不相等的断言方法。这里我们介绍两个对象的不相等举例,如果相等,输出message1的内容。

5) assertNotNull(object, “message1”)
对象非空判断,断言对象不为空,否则,抛出异常,打印message1的内容。

6) assertSame(actual, expect, “message”)
断言两个对象相同,这里相同和上面的Equals不同,Equals是值比较,而Same是内存地址比较。直接来看下面例子。

7) assertNotSame(actual, expect, “message”)
同样的,也有断言两个对象内存地址不相同的断言方法。

8) assertTrue(条件表达式, “message1”)
提供了断言一个条件为真的方法,如果条件表达式为真,该断言运行通过,如果表达式为假,抛出异常,打印message1的消息。

2.  SoftAssert(软断言)

在Assert.java这个类中,上面我们已经介绍了大部分的断言方法。这些断言方法都是叫硬断言。
硬断言就是,如果运行到折行断言失败,即使该用例,后面还有其他代码行,也不会继续执行下去。
有时候我们不希望这种情况出现,SoftAssert就很好地帮我们解决了这个问题。

SoftAssert的特点
1) 如果一个断言失败,会继续执行这个断言下的其他语句或者断言。
2) 也就是一个用例有多个断言,失败了其中一个,不影响其他断言的运行
3) 不要忘记调用assertAll()在该用例的最后一个断言后面。
通过运行结果截图,我们可以看到在断言12和13相等的这行代码后面还有其他的语句,如果这里采用的是Hard Assert,那么Test complete 和 11是不会输出,
也就是代码没有被执行。这个就是SoftAssert的优点,
再强调一次,最后一定要调用assertAll()方法。

testNG 学习笔记 Day 3 常用的断言的更多相关文章

  1. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  2. amazeui学习笔记--css(常用组件16)--文章页Article

    amazeui学习笔记--css(常用组件16)--文章页Article 一.总结 1.基本使用:文章内容页的排版样式,包括标题.文章元信息.分隔线等样式. .am-article 文章内容容器 .a ...

  3. amazeui学习笔记--css(常用组件15)--CSS动画Animation

    amazeui学习笔记--css(常用组件15)--CSS动画Animation 一.总结 1.css3动画封装:CSS3 动画封装,浏览器需支持 CSS3 动画. Class 描述 .am-anim ...

  4. amazeui学习笔记--css(常用组件14)--缩略图Thumbnail

    amazeui学习笔记--css(常用组件14)--缩略图Thumbnail 一.总结 1.基本样式:在 <img> 添加 .am-thumbnail 类:也可以在 <img> ...

  5. amazeui学习笔记--css(常用组件13)--进度条Progress

    amazeui学习笔记--css(常用组件13)--进度条Progress 一.总结 1.进度条基本使用:进度条组件,.am-progress 为容器,.am-progress-bar 为进度显示信息 ...

  6. amazeui学习笔记--css(常用组件12)--面板Panel

    amazeui学习笔记--css(常用组件12)--面板Panel 一.总结 1.面板基本样式:默认的 .am-panel 提供基本的阴影和边距,默认边框添加 .am-panel-default,内容 ...

  7. amazeui学习笔记--css(常用组件11)--分页Pagination

    amazeui学习笔记--css(常用组件11)--分页Pagination 一.总结 1.分页使用:还是ul包li的形式: 分页组件,<ul> / <ol> 添加 .am-p ...

  8. amazeui学习笔记--css(常用组件10)--导航条Topbar

    amazeui学习笔记--css(常用组件10)--导航条Topbar 一.总结 1. 导航条:就是页面最顶端的导航条:在容器上添加 .am-topbar class,然后按照示例组织所需内容.< ...

  9. amazeui学习笔记--css(常用组件9)--导航nav

    amazeui学习笔记--css(常用组件9)--导航nav 一.总结 1.导航基本使用:<ul> 添加 .am-nav class 以后就是一个基本的垂直导航.默认样式中并没有限定导航的 ...

随机推荐

  1. python图片处理(一)

    python图片处理需要先在cmd里面安装Pillow pip install Pillow 一.图片的打开与显示 from PIL import Image img=Image.open('d:/d ...

  2. Bus memory attribute

    根据程序的局部性原理,在主存与CPU之间设置的一个高速的容量较小的存储器,叫做cache. ARM cache架构由cache存储器和写缓冲器(write-buffer)组成.其中Write_buff ...

  3. windows系统和进程内存基础知识

  4. webp格式

    有时候你右键保存了一张图片,然后好气啊,打不开.这要么是webp格式,要么,,,,要么有问题啊. WebP格式,谷歌大法开发的一种旨在加快图片加载速度的图片格式.图片压缩体积大约只有JPEG的2/3, ...

  5. Object-C-Foundation-NSNuber

    NSNumber 是一个数值类型封装起来的数值. 装箱:基础类型->对象类型 NSNumber *number=[NSNumber numberWithInt:12]; 拆箱:对象类型-> ...

  6. python3 列表的常用方法

    Python3中常用的列表方法(method) 见:help(list) 方法 意义 L.index(v [, begin[, end]]) 返回对应元素的索引下标, begin为开始索引,end为结 ...

  7. 使用 JsPlumb 绘制拓扑图的通用方法

    摘要: 实现 JsPlumb 绘制拓扑图的通用方法. 只要服务端返回一个符合指定格式的数据结构,就可以绘制相应的拓扑图. 难度: 中级 示例工程见:  http://download.csdn.net ...

  8. python socket编程函数介绍

    网上看到一个socket中常用函数的介绍,记录一下 https://blog.csdn.net/rebelqsp/article/details/22109925

  9. MongoDB— 细说操作

    基本操作 由于是开篇,就大概的说下基本的“增删查改“,我们再开一个cmd,输入mongo命令打开shell,其实这个shell就是mongodb的客户端, 同时也是一个js的编译器,默认连接的是“te ...

  10. 在python3下使用OpenCV 显示图像

    在Python3下用使用OpenCV比在C,C++里开发不止快捷一点点, 原型开发的时候蛮有用. 这里用的OpenCV 加载图片, 用的imshow画图 # -*- coding: utf-8 -*- ...