TestNG软断言

本文深入解析软断言在测试中的应用,对比硬断言,阐述软断言如何确保测试方法中所有断言都能执行,即使遇到失败。通过具体示例,展示如何使用SoftAssert类进行断言,并结合assertAll()方法正确判断测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

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

正文

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();
    }
}

执行的结果如下图:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值