一、TestNG介绍

  • TestNG是Java中的一个测试框架, 类似于JUnit 和 NUnit, 功能都差不多, 只是功能更加强大,使用也更方便。
  • 官方链接:https://testng.org/doc/index.html

pom.xml

<dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>6.10</version><scope>test</scope></dependency>

二、常用的断言API

1、Assert.assertTrue();

  • assertTrue()如果实际输出的结果是false,测试不通过,并停止执行。

Assert.assertTrue(condition,message);

2、Assert.assertFalse();

  • assertFalse()如果实际输出的结果是true,测试不通过,并停止执行。

3、Assert.assertEquals(actual,expect,message)

  • assertEquals()如果值不等,就会停止执行,测试不通过。会输出message
  • 如果值相等就会继续执行。括号里的message不会打印
assertEquals()方法包含很多不同参数类型的重载方法。

其他:

关于assert常见断言方法及描述如下:

  • assertTrue:判断是否为True。True就通过
  • assertFalse:判断是否为false。false就通过
  • assertSame:判断引用地址是否相同。
  • assertNotSame:判断引用地址是否不相同。
  • assertNull:判断是否为null。
  • assertNotNull:判断是否不为null。
  • assertEquals:判断是否相等,Object类型的对象需要实现haseCode及equals方法。
  • assertNotEquals:判断是否不相等。
  • assertEqualsNoOrder:判断忽略顺序是否相等

三、案例:

1.被测试类的编写


public class ClassToBeTested {public int add(int a, int b){return a+b;}public String addString(String a, String b){return a+" "+b;}public int[] getArray(){int[] arrayExample = {1, 2, 3, 4};return arrayExample;}
}

2、测试类测试方法脚本的编写;

public class TestAssert {@Testpublic void testIntAdd(){System.out.println("测试两个int类的和是否正确");ClassToBeTested test = new ClassToBeTested();int result = test.add(2, 4);Assert.assertEquals(result, 6);}@Testpublic void testStringAdd(){System.out.println("测试字符串的连接与期望的字符串是否一致");String expectedString = "Hello World";ClassToBeTested test = new ClassToBeTested();String result = test.addString("Hello", "World");Assert.assertEquals(result, expectedString);}@Testpublic void testArray(){System.out.println("比较两个数组是否相等");int[] expectedArray = {1, 2, 3, 4};ClassToBeTested test = new ClassToBeTested();int[] result = test.getArray();Assert.assertEquals(result, expectedArray);System.out.println("这是比较两个数组是否成功断言后的输出语句");}
}

可以看到上述的执行过程是按照方法名首字母顺序执行。

修改测试类TestAssert.java中的testArray()方法

@Testpublic void testArray(){System.out.println("比较两个数组是否相等");int[] expectedArray = {1, 2, 3};ClassToBeTested test = new ClassToBeTested();int[] result = test.getArray();Assert.assertEquals(result, expectedArray);System.out.println("这是比较两个数组是否成功断言后的输出语句");}
  1. 上述代码中,int[] expectedArray = {1, 2, 3, 4}; 修改为 int[] expectedArray = {1, 2, 3};,
  2. 可以得知 Assert.assertEquals(result, expectedArray);断言失败。

结论:

  1. TestNG执行失败了,该失败的测试方法中后面的语句将会停止执行,
  2. 但是其他的测试方法不受影响,可以继续执行。

default suits

  • temp-testng-customsuite.xml

四、软断言

  • 在TestNg中,SoftAssert类为软断言,特点是如果运行断言失败,不会停止运行,会继续执行这个断言下的其他语句或者断言,不影响其他断言的运行。
  • 使用说明:assertAll()一定要放在该测试类的最后一个断言后面,软断言的类,叫SoftAssert.java,这个类是需要创建实例对象,才能调用相关实例方法进行软断言。

举例如下:

import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;public class TestSoftAssert {@Testpublic void testSoftAssert(){System.out.println("脚本执行开始。。。。。。。。。。。。。。。。。。");//实例化SoftAssertSoftAssert assertion = new SoftAssert();assertion.assertEquals(5, 6,"我俩不是一样大");System.out.println("脚本执行结束。。。。。。。。。。。。。。。。。。");System.out.println("我是观望,到这会不会执行的");//这个必须放到最后,没什么可说的assertion.assertAll();}
}

运行上面的代码,结果如下:

java断言--04--TestNG(Asserts)相关推荐

  1. java断言assert初步使用:断言开启、断言使用

    1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说"断言不具有继承性". 断言只适 ...

  2. java断言——Assertion

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java断言--Assertion 的相关知识: [1]使用断言 1.1)断言机制: 允许在测 ...

  3. 【重难点】【Java集合 04】ArrayDeque 的使用场景、ArrayBlockingQueue

    [重难点][Java集合 04]ArrayDeque 的使用场景.ArrayBlockingQueue 的源码实现 文章目录 [重难点][Java集合 04]ArrayDeque 的使用场景.Arra ...

  4. 【重难点】【Java基础 04】值传递和引用传递、序列化和反序列化

    [重难点][Java基础 04]值传递和引用传递.序列化和反序列化 文章目录 [重难点][Java基础 04]值传递和引用传递.序列化和反序列化 一.值传递和引用传递 1.对比 二.序列化 1.基本概 ...

  5. Java断言(assert)的介绍和使用

    Java断言(assert)的介绍和使用 在Java编程中,断言(assert)是一种有用的工具,用于在代码中进行条件检查和调试.通过使用断言,我们可以验证程序的逻辑和假设,确保程序在运行时达到预期的 ...

  6. Java自学笔记——Java面向对象——04.抽象类、接口、内部类

    Java 面向对象各节 Java自学笔记--Java面向对象--01.回顾方法 Java自学笔记--Java面向对象--02.构造器.类和对象 Java自学笔记--Java面向对象--03.封装.继承 ...

  7. java 断言 assert 初步使用:断言开启、断言使用

    主要总结一下在eclipse中如何使用断言. (一)首先明确: java断言Assert是jdk1.4引入的. jvm 断言默认是关闭的. 断言只适用于复杂的调试过程. 断言一般用于程序执行结果的判断 ...

  8. Java知识点04——集合(Set、List、Queue、Map、Collection和Iterator、Collections工具类)

    Java知识点04--集合(Set.List.Queue.Map.Collection.Iterator.Collections工具类) 一.集合 1.1 集合概述 二.Collection 2.1 ...

  9. java 断言 assert 详解:断言开启、断言使用

    java中的断言Assert的使用 一.背景 二.如何判断是否开启了断言 三.开启断言 四.断言的使用 方法一.assert <boolean表达式> 方法二.assert <boo ...

最新文章

  1. Kubernetes的共享GPU集群调度
  2. WindowsServer2012史记4-重复数据删除的魅力
  3. [SAP ABAP开发技术总结]CLEAR、REFRESH、FREE内表清理区别
  4. Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明
  5. c++ 经典代码_C语言经典100题(31)
  6. 办学10年,进入全国前10名!这所神奇的高校,迎来10岁生日
  7. 网页技术革命:精美绝伦的 HTML5 个人作品集网站
  8. parent.window php,javascript中的window.self、window.top、window.parent和window.opener详解
  9. 酷比魔方iwork8刷机shell_酷比魔方IWORK8旗舰版(I1-T)双系统刷机教程.doc
  10. LeetCode每周刷题(2019.7.1-2019.7.7)
  11. 3 docker容器
  12. 浅谈前端面向对象oop思想
  13. 数码照片的Photoshop清晰化处理漫谈-photoshop-Photoshop-天极Yesky
  14. 网页媒体播放利器 - JW Player的demo
  15. 【人物志】美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
  16. day14_html和css
  17. g mysql windows_Windows平台配置5.7版本+MySQL数据库服务
  18. 会员管理-小程序-免费使用体验
  19. java安装安装jdk,配置环境变量
  20. CNN网络结构进化概述

热门文章

  1. PostgreSQL实现oracle中rowid
  2. 计算机二级c相关书籍,二级C
  3. Paxos(帕克索斯)一致性算法[卷一]
  4. 机器学习:查准率和查全率
  5. 麒麟a1芯片升级鸿蒙,麒麟A1芯片对比苹果H1芯片,谁才是真无线降噪耳机的无冕之王解决方案?...
  6. python时间相减_python 计算时间差,时间加减运算代码
  7. linux 设备管理 (五) uevent
  8. springboot集成swagger2页面出现swagger-resources404
  9. 苹果免密支付怎么关闭_支付宝蚂蚁保险怎么关闭?蚂蚁保险怎么样?
  10. Luogu CF786B Legacy