TestNG软断言

17 篇文章 0 订阅

引言

什么叫做软断言?软断言与断言有什么区别?软断言适用于什么场景?怎样使用软断言?

正文

1、测试类编写;

public class TestSoftAssert {
    @Test
    public void testSoftAssert(){
        System.out.println("这是一个软断言示例-------->>>>");
        ClassToBeTested test = new ClassToBeTested();
        int result = test.add(3, 6);
        Assert.assertEquals(result, 8);
        System.out.println("这是一个验证输出语句");
        Assert.assertEquals(result, 9);
    }
}

测试类测试方法中有两个断言,从代码中可以得知,第一个断言  Assert.assertEquals(result, 8);断言失败。接下来的语句和断言没有执行。

2、执行测试类。

执行上述测试类,执行的结果如下

像上面的场景,一个测试方法中可能存在多个断言,在其中的一个断言失败时,希望后面的语句和断言依然可以执行,这时候我们就需要引入软断言的概念。

软断言与断言的区别:

SoftAssert时TestNG里面描述好的一个类,若想用这个类,首先要创建这个类的对象。



修改上述代码,引入软断言,在断言失败时,使处于其后的语句和断言依然可以执行。需要创建软断言的对象

public class TestSoftAssert {
    @Test
    public void testSoftAssert(){
        System.out.println("这是一个软断言示例-------->>>>");
        ClassToBeTested test = new ClassToBeTested();
        int result = test.add(3, 6);
        SoftAssert sa = new SoftAssert();
        sa.assertEquals(result, 8);
        System.out.println("这是一个验证输出语句");
        sa.assertEquals(result, 9);
    }
}

修改后的测试脚本再次执行,是可以测试成功通过的。执行的结果:



如何最终确认这一条测试方法是否成功呢,把有问题的断言暴露出来?还需要再加入软断言中的一个方法assertAll()。只要测试方法中有一个断言是失败的,assertAll()将判定这一条测试用例执行失败。

修正后的测试类代码如下:

public class TestSoftAssert {
    @Test
    public void testSoftAssert(){
        System.out.println("这是一个软断言示例-------->>>>");
        ClassToBeTested test = new ClassToBeTested();
        int result = test.add(3, 6);
        SoftAssert sa = new SoftAssert();
        sa.assertEquals(result, 8);
        System.out.println("这是一个验证输出语句");
        sa.assertEquals(result, 9);
        sa.assertAll();
    }
}

执行的结果如下图:

三人行,必有我师焉。欢迎交流指正。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值