首页 > 其他 > 详细

TestNg中的断言你真的了解吗

时间:2020-11-30 09:14:43      阅读:28      评论:0      收藏:0      [点我收藏+]
TestNg中的断言你真的了解吗

前言
在执行自动化测试脚本的时候,我们需要自动判断测试脚本执行完成后的实际结果是否与预期结果一致,这个时候就需要在程序运行之前写入断言,判断当前程序执行后是否正常。

关于TestNG断言分为两种:

  • 软断言
  • 硬断言
  • 硬断言
    在TestNg中,Assert类为硬断言,里面有多个静态方法被称为硬断言,特点就是,如果脚本运行断言失败,马上停止运行,后面代码将不会被执行。

TestNG中提供了多个assert*()方法,主要是匹配不同的数据类型和集合类及其他对象操作。

举例如下:

import org.testng.Assert;
import org.testng.annotations.Test;

public class TestAssert {

    @Test
    public void testAssert() throws Exception {
        Assert.assertEquals(4, 2 * 2);
        Assert.assertEquals(5,1+9);
    }
}

运行上面的代码,结果如下:
技术分享图片

从上面可以看出assertEquals中Expected和Actual不相等,如果实际结果和预期结果不相等,就会抛出断言异常并显示内容,这样抛出的错误,更方便定位错误的原因和具体的业务逻辑。

  • 关于assert常见断言方法及描述如下:
  • assertTrue:判断是否为True。
  • assertFalse:判断是否为false。
  • assertSame:判断引用地址是否相同。
  • assertNotSame:判断引用地址是否不相同。
  • assertNull:判断是否为null。
  • assertNotNull:判断是否不为null。
  • assertEquals:判断是否相等,Object类型的对象需要实现haseCode及equals方法。
  • assertNotEquals:判断是否不相等。
  • assertEqualsNoOrder:判断忽略顺序是否相等
    软断言
    在TestNg中,SoftAssert类为软断言,特点是如果运行断言失败,不会停止运行,会继续执行这个断言下的其他语句或者断言,不影响其他断言的运行。

使用说明:assertAll()一定要放在该测试类的最后一个断言后面,软断言的类,叫SoftAssert.java,这个类是需要创建实例对象,才能调用相关实例方法进行软断言。

举例如下:

import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;

public class TestSoftAssert {

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

运行上面的代码,结果如下:
技术分享图片

通过运行结果发现,可以看到在断言5和6相等的这行代码后,,还有其他的语句,如果这里采用的是硬断言,那么后面的"脚本执行结束"和"我是观望,到这会不会执行的"是不会输出的

也就是这两条语句不会输出。这个就是SoftAssert的优点,再强调一次,最后一定要调用assertAll()方法。

EOF

本文作者:久曲建的测试窝
本文链接:https://www.cnblogs.com/longronglang/p/11276219.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
优秀不够,你是否无可替代

软件测试交流QQ群:721256703,期待你的加入!!

欢迎关注我的微信公众号:软件测试君
技术分享图片

TestNg中的断言你真的了解吗

原文:https://blog.51cto.com/15009374/2556976

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!