java断言--04--TestNG(Asserts)

一、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 {
    @Test
    public void testIntAdd(){
        System.out.println("测试两个int类的和是否正确");
        ClassToBeTested test = new ClassToBeTested();
        int result = test.add(2, 4);
        Assert.assertEquals(result, 6);
    }
    @Test
    public void testStringAdd(){
        System.out.println("测试字符串的连接与期望的字符串是否一致");
        String expectedString = "Hello World";
        ClassToBeTested test = new ClassToBeTested();
        String result = test.addString("Hello", "World");
        Assert.assertEquals(result, expectedString);
 
    }
    @Test
    public 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()方法

@Test
    public 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 {

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

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

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值