zoukankan      html  css  js  c++  java
  • testNG 学习笔记 Day 3 常用的断言

    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()方法。

  • 相关阅读:
    距离计算方法总结 转自http://www.cnblogs.com/xbinworld/archive/2012/09/24/2700572.html#2663469
    2014.11.20查看到的有用网站和资料
    转载的计算机视觉方面的牛人博客,出处:blog.csdn.net/carson2005
    Java spring boot 2.0连接mysql异常:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
    Spring 复习第一天
    mysql 5.6.43免安装版安装教程
    JVM内存限制(最大值)
    修改电脑的ip
    Oracle 维护
    Oracle 操作
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/10058246.html
Copyright © 2011-2022 走看看